@inseefr/lunatic 3.4.14 → 3.4.16
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/components/shared/Label/Label.js +1 -1
- package/components/shared/Label/Label.js.map +1 -1
- package/components/shared/Label/Label.spec.js +11 -3
- package/components/shared/Label/Label.spec.js.map +1 -1
- package/esm/components/shared/Label/Label.js +1 -1
- package/esm/components/shared/Label/Label.js.map +1 -1
- package/esm/components/shared/Label/Label.spec.js +11 -3
- package/esm/components/shared/Label/Label.spec.js.map +1 -1
- package/esm/stories/overview/sourceWithHierarchy.json +5151 -0
- package/esm/tests/utils/lunatic.d.ts +0 -4
- package/esm/tests/utils/lunatic.js +0 -4
- package/esm/tests/utils/lunatic.js.map +1 -1
- package/esm/type.source.d.ts +1 -5
- package/esm/use-lunatic/commons/variables/get-questionnaire-data.js +0 -8
- package/esm/use-lunatic/commons/variables/get-questionnaire-data.js.map +1 -1
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js +0 -8
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
- package/esm/use-lunatic/hooks/useOverview.d.ts +1 -1
- package/esm/use-lunatic/hooks/useOverview.js +19 -14
- package/esm/use-lunatic/hooks/useOverview.js.map +1 -1
- package/esm/use-lunatic/hooks/useOverview.spec.d.ts +1 -0
- package/esm/use-lunatic/hooks/useOverview.spec.js +38 -0
- package/esm/use-lunatic/hooks/useOverview.spec.js.map +1 -0
- package/esm/use-lunatic/test.utils.d.ts +2 -0
- package/esm/use-lunatic/test.utils.js +13 -0
- package/esm/use-lunatic/test.utils.js.map +1 -0
- package/esm/use-lunatic/type.d.ts +0 -4
- package/esm/utils/constants/variable-status.d.ts +0 -4
- package/esm/utils/constants/variable-status.js +0 -4
- package/esm/utils/constants/variable-status.js.map +1 -1
- package/esm/utils/variables.spec.js +0 -8
- package/esm/utils/variables.spec.js.map +1 -1
- package/package.json +17 -57
- package/src/components/Input/__snapshots__/Input.spec.tsx.snap +11 -0
- package/src/components/shared/Label/Label.spec.tsx +15 -3
- package/src/components/shared/Label/Label.tsx +1 -1
- package/src/stories/accordion/source.json +1 -5
- package/src/stories/behaviour/cleaning/source-loop.json +3 -15
- package/src/stories/behaviour/cleaning/source.json +2 -10
- package/src/stories/behaviour/controls/boucles-n.json +2 -10
- package/src/stories/behaviour/controls/loop.json +2 -10
- package/src/stories/behaviour/controls/roundabout.json +3 -15
- package/src/stories/behaviour/controls/simple-numeric.json +19 -95
- package/src/stories/behaviour/controls/simple.json +7 -35
- package/src/stories/behaviour/filter/dataLoop.json +0 -8
- package/src/stories/behaviour/filter/source.json +0 -12
- package/src/stories/behaviour/filter/sourceLoop.json +0 -12
- package/src/stories/behaviour/missing/source.json +12 -60
- package/src/stories/behaviour/others/V2_DeclarationsSimples.json +14 -70
- package/src/stories/behaviour/others/V2_MinMaxSum_Boucles.json +5 -25
- package/src/stories/behaviour/others/V2_QuestSimple_Boucles.json +107 -535
- package/src/stories/behaviour/others/V2_TCMRallyeGames.json +33 -165
- package/src/stories/behaviour/others/test-dylan.json +5 -25
- package/src/stories/behaviour/paste/source.json +1 -5
- package/src/stories/behaviour/performance/source.json +4 -20
- package/src/stories/behaviour/resizing/source-resizing-cleaning.json +2 -10
- package/src/stories/behaviour/resizing/source.json +5 -25
- package/src/stories/checkbox-boolean/source.json +1 -5
- package/src/stories/checkbox-group/source.json +16 -80
- package/src/stories/checkbox-group/sourceCondition.json +3 -15
- package/src/stories/checkbox-group/sourceDetail.json +18 -90
- package/src/stories/checkbox-group/sourceLoop.json +2 -10
- package/src/stories/checkbox-one/source.json +1 -5
- package/src/stories/checkbox-one/sourceDetail.json +2 -10
- package/src/stories/date-picker/source.json +1 -5
- package/src/stories/declaration/source.json +2 -10
- package/src/stories/disabled/data.json +0 -16
- package/src/stories/disabled/source.json +7 -35
- package/src/stories/dropdown/data.json +2 -10
- package/src/stories/dropdown/source.json +2 -10
- package/src/stories/duration/mois.json +1 -5
- package/src/stories/duration/time.json +1 -5
- package/src/stories/filter-description/source-options.json +3 -15
- package/src/stories/input/source.json +1 -5
- package/src/stories/input-number/source-big-number.json +1 -5
- package/src/stories/input-number/source-euro.json +1 -5
- package/src/stories/input-number/source.json +1 -5
- package/src/stories/loop/source-bloc.json +2 -10
- package/src/stories/loop/source-paginated.json +2 -10
- package/src/stories/loop/source-roster.json +2 -10
- package/src/stories/loop/source-with-header.json +2 -10
- package/src/stories/overview/dataLoop.json +24 -120
- package/src/stories/overview/overview.stories.jsx +9 -0
- package/src/stories/overview/source.json +1 -5
- package/src/stories/overview/sourceLoop.json +24 -120
- package/src/stories/overview/sourceWithHierarchy.json +164 -820
- package/src/stories/pairwise/source.json +5 -25
- package/src/stories/question/source.json +2 -10
- package/src/stories/questionnaires/logement/data.json +0 -1288
- package/src/stories/questionnaires/logement/source-sequence.json +564 -2820
- package/src/stories/questionnaires/logement/source-sum.json +280 -1400
- package/src/stories/questionnaires/logement/source.json +564 -2820
- package/src/stories/questionnaires/recensement/source.json +106 -530
- package/src/stories/questionnaires/rp/source.json +8 -40
- package/src/stories/questionnaires/simpsons/source.json +104 -520
- package/src/stories/radio/source.json +1 -5
- package/src/stories/radio/sourceCondition.json +2 -10
- package/src/stories/radio/sourceDetail.json +2 -10
- package/src/stories/radio/sourceHorizontal.json +1 -5
- package/src/stories/roundabout/data1.json +0 -12
- package/src/stories/roundabout/data2.json +0 -16
- package/src/stories/roundabout/source.json +7 -35
- package/src/stories/suggester/source-arbitrary-response.json +6 -30
- package/src/stories/suggester/source-error.json +6 -30
- package/src/stories/suggester/source-multiline.json +0 -16
- package/src/stories/suggester/source-option-responses.json +5 -25
- package/src/stories/suggester/source.json +7 -35
- package/src/stories/summary/data.json +0 -16
- package/src/stories/summary/source.json +7 -35
- package/src/stories/switch/data-forced.json +2 -10
- package/src/stories/switch/source.json +4 -20
- package/src/stories/table/source-colspan.json +8 -40
- package/src/stories/table/table-dynamique.json +1 -5
- package/src/stories/text/source-roster.json +3 -15
- package/src/stories/text/source-table.json +9 -45
- package/src/stories/textarea/source.json +1 -5
- package/src/tests/utils/lunatic.ts +0 -4
- package/src/type.source.ts +1 -5
- package/src/use-lunatic/__snapshots__/use-lunatic.test.ts.snap +0 -1159
- package/src/use-lunatic/commons/variables/get-questionnaire-data.ts +0 -12
- package/src/use-lunatic/commons/variables/lunatic-variables-store.spec.ts +0 -8
- package/src/use-lunatic/hooks/useOverview.spec.ts +42 -0
- package/src/use-lunatic/hooks/useOverview.ts +41 -18
- package/src/use-lunatic/test.utils.ts +17 -0
- package/src/use-lunatic/type.ts +0 -4
- package/src/use-lunatic/use-lunatic.test.ts +2 -21
- package/src/utils/constants/variable-status.ts +0 -4
- package/src/utils/variables.spec.ts +0 -8
- package/stories/overview/sourceWithHierarchy.json +5151 -0
- package/tests/utils/lunatic.d.ts +0 -4
- package/tests/utils/lunatic.js +0 -4
- package/tests/utils/lunatic.js.map +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/type.source.d.ts +1 -5
- package/use-lunatic/commons/variables/get-questionnaire-data.js +0 -8
- package/use-lunatic/commons/variables/get-questionnaire-data.js.map +1 -1
- package/use-lunatic/commons/variables/lunatic-variables-store.spec.js +0 -8
- package/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
- package/use-lunatic/hooks/useOverview.d.ts +1 -1
- package/use-lunatic/hooks/useOverview.js +19 -14
- package/use-lunatic/hooks/useOverview.js.map +1 -1
- package/use-lunatic/hooks/useOverview.spec.d.ts +1 -0
- package/use-lunatic/hooks/useOverview.spec.js +43 -0
- package/use-lunatic/hooks/useOverview.spec.js.map +1 -0
- package/use-lunatic/test.utils.d.ts +2 -0
- package/use-lunatic/test.utils.js +17 -0
- package/use-lunatic/test.utils.js.map +1 -0
- package/use-lunatic/type.d.ts +0 -4
- package/utils/constants/variable-status.d.ts +0 -4
- package/utils/constants/variable-status.js +1 -5
- package/utils/constants/variable-status.js.map +1 -1
- package/utils/variables.spec.js +0 -8
- package/utils/variables.spec.js.map +1 -1
- package/constants/component-types.d.ts +0 -1
- package/constants/component-types.js +0 -5
- package/constants/component-types.js.map +0 -1
- package/constants/declarations.d.ts +0 -9
- package/constants/declarations.js +0 -15
- package/constants/declarations.js.map +0 -1
- package/constants/event-types.d.ts +0 -10
- package/constants/event-types.js +0 -16
- package/constants/event-types.js.map +0 -1
- package/constants/index.d.ts +0 -5
- package/constants/index.js +0 -22
- package/constants/index.js.map +0 -1
- package/constants/indexedDBStore.d.ts +0 -21
- package/constants/indexedDBStore.js +0 -22
- package/constants/indexedDBStore.js.map +0 -1
- package/constants/supported-preferences.d.ts +0 -1
- package/constants/supported-preferences.js +0 -36
- package/constants/supported-preferences.js.map +0 -1
- package/constants/value-types.d.ts +0 -5
- package/constants/value-types.js +0 -9
- package/constants/value-types.js.map +0 -1
- package/constants/variable-types.d.ts +0 -2
- package/constants/variable-types.js +0 -8
- package/constants/variable-types.js.map +0 -1
- package/esm/constants/component-types.d.ts +0 -1
- package/esm/constants/component-types.js +0 -2
- package/esm/constants/component-types.js.map +0 -1
- package/esm/constants/declarations.d.ts +0 -9
- package/esm/constants/declarations.js +0 -12
- package/esm/constants/declarations.js.map +0 -1
- package/esm/constants/event-types.d.ts +0 -10
- package/esm/constants/event-types.js +0 -13
- package/esm/constants/event-types.js.map +0 -1
- package/esm/constants/index.d.ts +0 -5
- package/esm/constants/index.js +0 -6
- package/esm/constants/index.js.map +0 -1
- package/esm/constants/indexedDBStore.d.ts +0 -21
- package/esm/constants/indexedDBStore.js +0 -19
- package/esm/constants/indexedDBStore.js.map +0 -1
- package/esm/constants/supported-preferences.d.ts +0 -1
- package/esm/constants/supported-preferences.js +0 -10
- package/esm/constants/supported-preferences.js.map +0 -1
- package/esm/constants/value-types.d.ts +0 -5
- package/esm/constants/value-types.js +0 -6
- package/esm/constants/value-types.js.map +0 -1
- package/esm/constants/variable-types.d.ts +0 -2
- package/esm/constants/variable-types.js +0 -5
- package/esm/constants/variable-types.js.map +0 -1
- package/src/constants/component-types.ts +0 -1
- package/src/constants/declarations.ts +0 -14
- package/src/constants/event-types.ts +0 -13
- package/src/constants/index.ts +0 -5
- package/src/constants/indexedDBStore.ts +0 -20
- package/src/constants/supported-preferences.ts +0 -10
- package/src/constants/value-types.ts +0 -5
- package/src/constants/variable-types.ts +0 -4
|
@@ -13,10 +13,6 @@ export function getQuestionnaireData(
|
|
|
13
13
|
COLLECTED: {} as Record<
|
|
14
14
|
string,
|
|
15
15
|
{
|
|
16
|
-
EDITED: unknown;
|
|
17
|
-
FORCED: unknown;
|
|
18
|
-
INPUTTED: unknown;
|
|
19
|
-
PREVIOUS: unknown;
|
|
20
16
|
COLLECTED: unknown;
|
|
21
17
|
}
|
|
22
18
|
>,
|
|
@@ -34,10 +30,6 @@ export function getQuestionnaireData(
|
|
|
34
30
|
variableNames.map((name) => [
|
|
35
31
|
name,
|
|
36
32
|
{
|
|
37
|
-
EDITED: null,
|
|
38
|
-
FORCED: null,
|
|
39
|
-
INPUTTED: null,
|
|
40
|
-
PREVIOUS: null,
|
|
41
33
|
COLLECTED: store.get(name),
|
|
42
34
|
},
|
|
43
35
|
])
|
|
@@ -53,10 +45,6 @@ export function getQuestionnaireData(
|
|
|
53
45
|
|
|
54
46
|
if (variable.variableType === 'COLLECTED') {
|
|
55
47
|
result.COLLECTED[variable.name] = {
|
|
56
|
-
PREVIOUS: null,
|
|
57
|
-
FORCED: null,
|
|
58
|
-
EDITED: null,
|
|
59
|
-
INPUTTED: null,
|
|
60
48
|
...variable.values,
|
|
61
49
|
COLLECTED: store.get(variable.name),
|
|
62
50
|
};
|
|
@@ -449,10 +449,6 @@ describe('lunatic-variables-store', () => {
|
|
|
449
449
|
{
|
|
450
450
|
name: 'PRENOM',
|
|
451
451
|
values: {
|
|
452
|
-
EDITED: null,
|
|
453
|
-
FORCED: null,
|
|
454
|
-
INPUTTED: null,
|
|
455
|
-
PREVIOUS: null,
|
|
456
452
|
COLLECTED: 'John',
|
|
457
453
|
},
|
|
458
454
|
variableType: 'COLLECTED',
|
|
@@ -460,10 +456,6 @@ describe('lunatic-variables-store', () => {
|
|
|
460
456
|
{
|
|
461
457
|
name: 'NOM',
|
|
462
458
|
values: {
|
|
463
|
-
EDITED: null,
|
|
464
|
-
FORCED: null,
|
|
465
|
-
INPUTTED: null,
|
|
466
|
-
PREVIOUS: null,
|
|
467
459
|
COLLECTED: '',
|
|
468
460
|
},
|
|
469
461
|
variableType: 'COLLECTED',
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { renderHook } from '@testing-library/react';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import source from '../../stories/overview/sourceWithHierarchy.json';
|
|
4
|
+
import { useLunatic } from '../use-lunatic';
|
|
5
|
+
import { dataFromObject } from '../test.utils';
|
|
6
|
+
|
|
7
|
+
describe('use-overview test with useLunatic()', () => {
|
|
8
|
+
it('should initialize correctly with disableFilters: false (without data)', () => {
|
|
9
|
+
const params = [
|
|
10
|
+
source as any,
|
|
11
|
+
dataFromObject({}),
|
|
12
|
+
{ withOverview: true },
|
|
13
|
+
] as const;
|
|
14
|
+
const { result } = renderHook(() => useLunatic(...params));
|
|
15
|
+
expect(result.current.overview.length).toBe(3);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('should initialize correctly with disableFilters: false (with data)', () => {
|
|
19
|
+
const params = [
|
|
20
|
+
source as any,
|
|
21
|
+
dataFromObject({
|
|
22
|
+
READY: true,
|
|
23
|
+
}),
|
|
24
|
+
{ withOverview: true },
|
|
25
|
+
] as const;
|
|
26
|
+
|
|
27
|
+
const { result } = renderHook(() => useLunatic(...params));
|
|
28
|
+
expect(result.current.overview.length).toBe(9);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('should initialize correctly with disableFilters: true (without data)', () => {
|
|
32
|
+
const params = [
|
|
33
|
+
source as any,
|
|
34
|
+
dataFromObject({}),
|
|
35
|
+
{ withOverview: true, disableFilters: true },
|
|
36
|
+
] as const;
|
|
37
|
+
|
|
38
|
+
const { result } = renderHook(() => useLunatic(...params));
|
|
39
|
+
// All elements have to be presents
|
|
40
|
+
expect(result.current.overview.length).toBe(9);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
LunaticOptions,
|
|
2
3
|
LunaticOverviewItem,
|
|
3
4
|
LunaticReducerState,
|
|
4
5
|
PageTag,
|
|
@@ -25,13 +26,23 @@ export const useOverview = (
|
|
|
25
26
|
overview,
|
|
26
27
|
executeExpression,
|
|
27
28
|
pager,
|
|
28
|
-
|
|
29
|
+
options,
|
|
30
|
+
}: Pick<
|
|
31
|
+
LunaticReducerState,
|
|
32
|
+
'executeExpression' | 'overview' | 'pager' | 'options'
|
|
33
|
+
>,
|
|
29
34
|
deps: DependencyList
|
|
30
35
|
) => {
|
|
31
36
|
return useMemo(
|
|
32
|
-
() =>
|
|
37
|
+
() =>
|
|
38
|
+
interpretOverview(
|
|
39
|
+
overview,
|
|
40
|
+
executeExpression,
|
|
41
|
+
pager,
|
|
42
|
+
options.disableFilters
|
|
43
|
+
),
|
|
33
44
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
34
|
-
[...deps, overview]
|
|
45
|
+
[...deps, overview, options.disableFilters]
|
|
35
46
|
);
|
|
36
47
|
};
|
|
37
48
|
|
|
@@ -41,11 +52,16 @@ export const useOverview = (
|
|
|
41
52
|
const interpretOverview = (
|
|
42
53
|
overviewItems: LunaticOverviewItem[],
|
|
43
54
|
executeExpression: LunaticReducerState['executeExpression'],
|
|
44
|
-
pager?: LunaticReducerState['pager']
|
|
55
|
+
pager?: LunaticReducerState['pager'],
|
|
56
|
+
disableFilters?: LunaticOptions['disableFilters']
|
|
45
57
|
) => {
|
|
46
58
|
// Flat structure of the overview
|
|
47
59
|
let items = overviewItems.reduce(
|
|
48
|
-
(acc, item) =>
|
|
60
|
+
(acc, item) =>
|
|
61
|
+
interpretOverviewItem(acc, item, executeExpression, {
|
|
62
|
+
pager,
|
|
63
|
+
disableFilters,
|
|
64
|
+
}),
|
|
49
65
|
[] as InterpretedLunaticOverviewItem[]
|
|
50
66
|
);
|
|
51
67
|
// Sort using the page logic
|
|
@@ -77,7 +93,11 @@ const interpretOverviewItem = (
|
|
|
77
93
|
items: InterpretedLunaticOverviewItem[],
|
|
78
94
|
item: LunaticOverviewItem,
|
|
79
95
|
executeExpression: LunaticReducerState['executeExpression'],
|
|
80
|
-
|
|
96
|
+
state: {
|
|
97
|
+
pager?: LunaticReducerState['pager'];
|
|
98
|
+
disableFilters?: LunaticOptions['disableFilters'];
|
|
99
|
+
},
|
|
100
|
+
|
|
81
101
|
iteration?: number
|
|
82
102
|
): InterpretedLunaticOverviewItem[] => {
|
|
83
103
|
// We reached a loop item, we need to add it multiple time
|
|
@@ -85,19 +105,21 @@ const interpretOverviewItem = (
|
|
|
85
105
|
const iterations = executeExpression<number>(item.iterations) ?? 0;
|
|
86
106
|
return Array.from({ length: iterations }).reduce(
|
|
87
107
|
(acc: InterpretedLunaticOverviewItem[], _, k) => {
|
|
88
|
-
return interpretOverviewItem(acc, item, executeExpression,
|
|
108
|
+
return interpretOverviewItem(acc, item, executeExpression, state, k);
|
|
89
109
|
},
|
|
90
110
|
items
|
|
91
111
|
);
|
|
92
112
|
}
|
|
93
113
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
114
|
+
// if disableFilters is set to true, item are visible and reached by default
|
|
115
|
+
const isVisible = (() => {
|
|
116
|
+
if (state.disableFilters || !item.conditionFilter) return true;
|
|
117
|
+
return Boolean(
|
|
118
|
+
executeExpression(item.conditionFilter, {
|
|
119
|
+
iteration: iteration,
|
|
120
|
+
})
|
|
121
|
+
);
|
|
122
|
+
})();
|
|
101
123
|
|
|
102
124
|
if (!isVisible) {
|
|
103
125
|
return items;
|
|
@@ -106,6 +128,10 @@ const interpretOverviewItem = (
|
|
|
106
128
|
// Append the item to the list of items
|
|
107
129
|
const page =
|
|
108
130
|
`${item.pageTag}${iteration !== undefined ? `#${iteration + 1}` : ''}` as PageTag;
|
|
131
|
+
|
|
132
|
+
const reached =
|
|
133
|
+
pageTagComparator(state.pager ? getPageTag(state.pager) : '-1', page) >= 0;
|
|
134
|
+
|
|
109
135
|
return [
|
|
110
136
|
...items,
|
|
111
137
|
{
|
|
@@ -116,10 +142,7 @@ const interpretOverviewItem = (
|
|
|
116
142
|
? executeExpression(item.description, { iteration })
|
|
117
143
|
: undefined,
|
|
118
144
|
children: [],
|
|
119
|
-
reached:
|
|
120
|
-
pageTagComparator(pager ? getPageTag(pager) : '-1', page) >= 0
|
|
121
|
-
? true
|
|
122
|
-
: false,
|
|
145
|
+
reached: reached,
|
|
123
146
|
page: page,
|
|
124
147
|
current: false,
|
|
125
148
|
},
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LunaticData } from './type';
|
|
2
|
+
|
|
3
|
+
export const dataFromObject = (o: Record<string, unknown>): LunaticData => {
|
|
4
|
+
return {
|
|
5
|
+
EXTERNAL: {},
|
|
6
|
+
COLLECTED: Object.keys(o).reduce(
|
|
7
|
+
(acc, k) => ({
|
|
8
|
+
...acc,
|
|
9
|
+
[k]: {
|
|
10
|
+
COLLECTED: o[k],
|
|
11
|
+
},
|
|
12
|
+
}),
|
|
13
|
+
{}
|
|
14
|
+
),
|
|
15
|
+
CALCULATED: {},
|
|
16
|
+
};
|
|
17
|
+
};
|
package/src/use-lunatic/type.ts
CHANGED
|
@@ -74,10 +74,6 @@ export type PageTag = `${number}.${number}#${number}` | `${number}`;
|
|
|
74
74
|
export type LunaticVariable = Variable;
|
|
75
75
|
export type LunaticCollectedValue = Partial<{
|
|
76
76
|
COLLECTED: unknown;
|
|
77
|
-
EDITED: unknown;
|
|
78
|
-
FORCED: unknown;
|
|
79
|
-
INPUTTED: unknown;
|
|
80
|
-
PREVIOUS: unknown;
|
|
81
77
|
}>;
|
|
82
78
|
|
|
83
79
|
// We need a mapped type to correlate type and variableType
|
|
@@ -9,29 +9,10 @@ import sourceCheckboxGroup from '../stories/checkbox-group/source.json';
|
|
|
9
9
|
import dataOverview from '../stories/overview/dataLoop.json';
|
|
10
10
|
import sourceCleaningLoop from '../stories/behaviour/cleaning/source-loop.json';
|
|
11
11
|
import sourceCleaningResizing from '../stories/behaviour/resizing/source-resizing-cleaning.json';
|
|
12
|
-
import type {
|
|
12
|
+
import type { PageTag } from './type';
|
|
13
13
|
import { useLunatic } from './use-lunatic';
|
|
14
14
|
import { useCallback } from 'react';
|
|
15
|
-
|
|
16
|
-
const dataFromObject = (o: Record<string, unknown>): LunaticData => {
|
|
17
|
-
return {
|
|
18
|
-
EXTERNAL: {},
|
|
19
|
-
COLLECTED: Object.keys(o).reduce(
|
|
20
|
-
(acc, k) => ({
|
|
21
|
-
...acc,
|
|
22
|
-
[k]: {
|
|
23
|
-
EDITED: null,
|
|
24
|
-
FORCED: null,
|
|
25
|
-
INPUTTED: null,
|
|
26
|
-
PREVIOUS: null,
|
|
27
|
-
COLLECTED: o[k],
|
|
28
|
-
},
|
|
29
|
-
}),
|
|
30
|
-
{}
|
|
31
|
-
),
|
|
32
|
-
CALCULATED: {},
|
|
33
|
-
};
|
|
34
|
-
};
|
|
15
|
+
import { dataFromObject } from './test.utils';
|
|
35
16
|
|
|
36
17
|
describe('use-lunatic()', () => {
|
|
37
18
|
const defaultParams = [
|
|
@@ -15,10 +15,6 @@ const data = {
|
|
|
15
15
|
},
|
|
16
16
|
PRENOMS: {
|
|
17
17
|
COLLECTED: ['Paul', 'Pierre'],
|
|
18
|
-
EDITED: [],
|
|
19
|
-
INPUTTED: [],
|
|
20
|
-
FORCED: [],
|
|
21
|
-
PREVIOUS: [],
|
|
22
18
|
},
|
|
23
19
|
AGE: {},
|
|
24
20
|
},
|
|
@@ -49,10 +45,6 @@ const loopCollectedVariable = {
|
|
|
49
45
|
variableType: 'COLLECTED',
|
|
50
46
|
values: {
|
|
51
47
|
COLLECTED: [],
|
|
52
|
-
PREVIOUS: [],
|
|
53
|
-
FORCED: [],
|
|
54
|
-
EDITED: [],
|
|
55
|
-
INPUTTED: [],
|
|
56
48
|
},
|
|
57
49
|
name: 'PRENOMS',
|
|
58
50
|
} as LunaticVariable;
|