@inseefr/lunatic 3.8.0-rc.ucq-options-variable.0 → 3.8.1-rc.0
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/Suggester/Suggester.js +19 -7
- package/components/Suggester/Suggester.js.map +1 -1
- package/components/Suggester/Suggester.spec.js +8 -1
- package/components/Suggester/Suggester.spec.js.map +1 -1
- package/components/Suggester/useSuggestions.d.ts +21 -2
- package/components/Suggester/useSuggestions.js +26 -12
- package/components/Suggester/useSuggestions.js.map +1 -1
- package/esm/components/Suggester/Suggester.js +21 -8
- package/esm/components/Suggester/Suggester.js.map +1 -1
- package/esm/components/Suggester/Suggester.spec.js +8 -1
- package/esm/components/Suggester/Suggester.spec.js.map +1 -1
- package/esm/components/Suggester/useSuggestions.d.ts +21 -2
- package/esm/components/Suggester/useSuggestions.js +24 -10
- package/esm/components/Suggester/useSuggestions.js.map +1 -1
- package/esm/type.source.d.ts +3 -9
- package/esm/use-lunatic/commons/fill-components/fill-component-expressions.d.ts +1 -1
- package/esm/use-lunatic/commons/fill-components/fill-component-expressions.js.map +1 -1
- package/esm/use-lunatic/commons/fill-components/fill-components.js +2 -10
- package/esm/use-lunatic/commons/fill-components/fill-components.js.map +1 -1
- package/esm/use-lunatic/props/propOptions.d.ts +1 -9
- package/esm/use-lunatic/props/propOptions.js +1 -56
- package/esm/use-lunatic/props/propOptions.js.map +1 -1
- package/esm/use-lunatic/props/propOptions.spec.js +56 -220
- package/esm/use-lunatic/props/propOptions.spec.js.map +1 -1
- package/esm/utils/search/SearchInterface.d.ts +1 -0
- package/esm/utils/search/SearchMinisearch.d.ts +1 -0
- package/esm/utils/search/SearchMinisearch.js +6 -0
- package/esm/utils/search/SearchMinisearch.js.map +1 -1
- package/esm/utils/search/SuggestersDatabase.d.ts +7 -0
- package/esm/utils/search/SuggestersDatabase.js.map +1 -1
- package/package.json +1 -4
- package/src/components/Suggester/Suggester.spec.tsx +9 -1
- package/src/components/Suggester/Suggester.tsx +21 -8
- package/src/components/Suggester/useSuggestions.ts +39 -18
- package/src/stories/checkbox/checkbox.stories.tsx +0 -13
- package/src/stories/dropdown/dropdown.stories.tsx +0 -12
- package/src/stories/radio/radio.stories.tsx +0 -13
- package/src/type.source.ts +3 -9
- package/src/use-lunatic/commons/fill-components/fill-component-expressions.ts +1 -2
- package/src/use-lunatic/commons/fill-components/fill-components.ts +10 -9
- package/src/use-lunatic/props/propOptions.spec.ts +147 -217
- package/src/use-lunatic/props/propOptions.ts +8 -97
- package/src/utils/search/SearchInterface.ts +2 -0
- package/src/utils/search/SearchMinisearch.ts +7 -0
- package/src/utils/search/SuggestersDatabase.ts +10 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/type.source.d.ts +3 -9
- package/use-lunatic/commons/fill-components/fill-component-expressions.d.ts +1 -1
- package/use-lunatic/commons/fill-components/fill-component-expressions.js.map +1 -1
- package/use-lunatic/commons/fill-components/fill-components.js +1 -9
- package/use-lunatic/commons/fill-components/fill-components.js.map +1 -1
- package/use-lunatic/props/propOptions.d.ts +1 -9
- package/use-lunatic/props/propOptions.js +2 -57
- package/use-lunatic/props/propOptions.js.map +1 -1
- package/use-lunatic/props/propOptions.spec.js +55 -217
- package/use-lunatic/props/propOptions.spec.js.map +1 -1
- package/utils/search/SearchInterface.d.ts +1 -0
- package/utils/search/SearchMinisearch.d.ts +1 -0
- package/utils/search/SearchMinisearch.js +6 -0
- package/utils/search/SearchMinisearch.js.map +1 -1
- package/utils/search/SuggestersDatabase.d.ts +7 -0
- package/utils/search/SuggestersDatabase.js.map +1 -1
- package/src/stories/checkbox/sourceOneDynamicOptions.json +0 -496
- package/src/stories/dropdown/sourceDynamicOptions.json +0 -496
- package/src/stories/radio/sourceDynamicOptions.json +0 -496
package/type.source.d.ts
CHANGED
|
@@ -124,9 +124,7 @@ export type ComponentCheckboxBooleanDefinition = ComponentDefinitionBaseWithResp
|
|
|
124
124
|
export type ComponentRadioDefinition = ComponentDefinitionBaseWithResponse & {
|
|
125
125
|
componentType: 'Radio';
|
|
126
126
|
orientation?: 'horizontal' | 'vertical';
|
|
127
|
-
options
|
|
128
|
-
optionSource?: string;
|
|
129
|
-
optionFilter?: VTLExpression;
|
|
127
|
+
options: OptionsWithDetail;
|
|
130
128
|
};
|
|
131
129
|
export type OptionsWithDetail = {
|
|
132
130
|
value: string | boolean;
|
|
@@ -142,9 +140,7 @@ export type OptionsWithDetail = {
|
|
|
142
140
|
}[];
|
|
143
141
|
export type ComponentDropdownDefinition = ComponentDefinitionBaseWithResponse & {
|
|
144
142
|
componentType: 'Dropdown';
|
|
145
|
-
options
|
|
146
|
-
optionSource?: string;
|
|
147
|
-
optionFilter?: VTLExpression;
|
|
143
|
+
options: Options;
|
|
148
144
|
};
|
|
149
145
|
export type ComponentQuestionDefinition = ComponentDefinitionBase & {
|
|
150
146
|
componentType: 'Question';
|
|
@@ -152,9 +148,7 @@ export type ComponentQuestionDefinition = ComponentDefinitionBase & {
|
|
|
152
148
|
};
|
|
153
149
|
export type ComponentCheckboxOneDefinition = ComponentDefinitionBaseWithResponse & {
|
|
154
150
|
componentType: 'CheckboxOne';
|
|
155
|
-
options
|
|
156
|
-
optionSource?: string;
|
|
157
|
-
optionFilter?: VTLExpression;
|
|
151
|
+
options: OptionsWithDetail;
|
|
158
152
|
};
|
|
159
153
|
export type ComponentSuggesterDefinition = ComponentDefinitionBaseWithResponse & {
|
|
160
154
|
componentType: 'Suggester';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { LunaticComponentDefinition, LunaticExpression, LunaticReducerState } from '../../type';
|
|
3
|
-
type UntranslatedProperties = 'expressions' | 'sections' | 'body' | 'item' | 'controls' | 'conditionFilter' | 'conditionReadOnly' | 'components'
|
|
3
|
+
type UntranslatedProperties = 'expressions' | 'sections' | 'body' | 'item' | 'controls' | 'conditionFilter' | 'conditionReadOnly' | 'components';
|
|
4
4
|
export type DeepTranslateExpression<T> = T extends LunaticExpression ? ReactNode : T extends (infer ElementType)[] ? DeepTranslateExpression<ElementType>[] : T extends {
|
|
5
5
|
[k: string | number]: unknown;
|
|
6
6
|
} ? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill-component-expressions.js","sourceRoot":"","sources":["../../../src/use-lunatic/commons/fill-components/fill-component-expressions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"fill-component-expressions.js","sourceRoot":"","sources":["../../../src/use-lunatic/commons/fill-components/fill-component-expressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,15 +47,7 @@ parentReadOnly) => {
|
|
|
47
47
|
missingResponse: (0, propMissingResponse_1.getMissingResponseProp)(component, state),
|
|
48
48
|
management: state.management,
|
|
49
49
|
iterations: (0, propIterations_1.getIterationsProp)(component, state),
|
|
50
|
-
options: (0, propOptions_1.
|
|
51
|
-
variables: state.variables,
|
|
52
|
-
handleChanges: state.handleChanges,
|
|
53
|
-
pagerIteration: state.pager.iteration,
|
|
54
|
-
value,
|
|
55
|
-
logger: state.logger,
|
|
56
|
-
disableFilters: state.disableFilters,
|
|
57
|
-
shouldParentBeFiltered: shouldBeFiltered,
|
|
58
|
-
}),
|
|
50
|
+
options: (0, propOptions_1.getOptionsProp)(interpretedProps, state.variables, state.handleChanges, state.pager.iteration, value, state.logger, state.disableFilters, shouldBeFiltered),
|
|
59
51
|
...(0, getComponentTypeProps_1.getComponentTypeProps)(interpretedProps, state),
|
|
60
52
|
// This is too dynamic to be typed correctly, so we allow any here
|
|
61
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill-components.js","sourceRoot":"","sources":["../../../src/use-lunatic/commons/fill-components/fill-components.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"fill-components.js","sourceRoot":"","sources":["../../../src/use-lunatic/commons/fill-components/fill-components.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,15 +19,7 @@ export type InterpretedOption = {
|
|
|
19
19
|
/**
|
|
20
20
|
* Compute options for checkboxes / radios / dropdown
|
|
21
21
|
*/
|
|
22
|
-
export declare function
|
|
23
|
-
variables: LunaticVariablesStore;
|
|
24
|
-
handleChanges: LunaticChangesHandler;
|
|
25
|
-
pagerIteration: LunaticState['pager']['iteration'];
|
|
26
|
-
value: unknown;
|
|
27
|
-
logger: LunaticLogger;
|
|
28
|
-
disableFilters?: boolean;
|
|
29
|
-
shouldParentBeFiltered?: boolean;
|
|
30
|
-
}): InterpretedOption[] | {
|
|
22
|
+
export declare function getOptionsProp(definition: DeepTranslateExpression<LunaticComponentDefinition>, variables: LunaticVariablesStore, handleChanges: LunaticChangesHandler, pagerIteration: LunaticState['pager']['iteration'], value: unknown, logger: LunaticLogger, disableFilters?: boolean, shouldParentBeFiltered?: boolean): {
|
|
31
23
|
label: ReactNode;
|
|
32
24
|
name: string;
|
|
33
25
|
id: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getOptionsProp = getOptionsProp;
|
|
4
4
|
const number_1 = require("../../utils/number");
|
|
5
5
|
/**
|
|
6
6
|
* Compute options for checkboxes / radios / dropdown
|
|
7
7
|
*/
|
|
8
|
-
function
|
|
8
|
+
function getOptionsProp(definition, variables, handleChanges, pagerIteration, value, logger, disableFilters, shouldParentBeFiltered) {
|
|
9
9
|
const iteration = (0, number_1.isNumber)(pagerIteration) ? [pagerIteration] : undefined;
|
|
10
10
|
if (definition.componentType === 'CheckboxGroup') {
|
|
11
11
|
return definition.responses
|
|
@@ -40,24 +40,9 @@ function computeOptionsFromComponent(definition, { variables, handleChanges, pag
|
|
|
40
40
|
isFilteredOutOption(variables, iteration, logger, response.conditionFilter),
|
|
41
41
|
}));
|
|
42
42
|
}
|
|
43
|
-
// options based on another variable
|
|
44
|
-
if ('optionSource' in definition && definition.optionSource) {
|
|
45
|
-
return computeOptionsFromSource(definition.optionSource, {
|
|
46
|
-
variables,
|
|
47
|
-
value,
|
|
48
|
-
handleChanges,
|
|
49
|
-
responseName: definition.response.name,
|
|
50
|
-
logger,
|
|
51
|
-
shouldParentBeFiltered,
|
|
52
|
-
optionFilter: definition.optionFilter,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
43
|
if (!('options' in definition)) {
|
|
56
44
|
return [];
|
|
57
45
|
}
|
|
58
|
-
if (!definition.options) {
|
|
59
|
-
return [];
|
|
60
|
-
}
|
|
61
46
|
return definition.options
|
|
62
47
|
.filter((option) => {
|
|
63
48
|
if (disableFilters ||
|
|
@@ -96,46 +81,6 @@ function computeOptionsFromComponent(definition, { variables, handleChanges, pag
|
|
|
96
81
|
isFilteredOutOption(variables, iteration, logger, option.conditionFilter)),
|
|
97
82
|
}));
|
|
98
83
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Get all options from a source variable, applying filters.
|
|
101
|
-
*/
|
|
102
|
-
function computeOptionsFromSource(optionSource, { variables, value, handleChanges, responseName, logger, shouldParentBeFiltered, optionFilter, }) {
|
|
103
|
-
// we don't know the type of the optionSource values (string, numbers, boolean)
|
|
104
|
-
const optionValues = variables.get(optionSource);
|
|
105
|
-
if (!optionValues) {
|
|
106
|
-
return [];
|
|
107
|
-
}
|
|
108
|
-
const normalizedValues = Array.isArray(optionValues)
|
|
109
|
-
? optionValues
|
|
110
|
-
: [optionValues];
|
|
111
|
-
return normalizedValues
|
|
112
|
-
.filter((option, index) => {
|
|
113
|
-
// option is an empty value, we remove it from the options list
|
|
114
|
-
if (option === null || option === undefined) {
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
// no filter expression, we keep the option
|
|
118
|
-
if (!optionFilter) {
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
// apply filter expression on option (applied to its iteration)
|
|
122
|
-
return !isFilteredOutOption(variables, [index], logger, optionFilter);
|
|
123
|
-
})
|
|
124
|
-
.map((option) => {
|
|
125
|
-
return {
|
|
126
|
-
label: String(option),
|
|
127
|
-
value: option,
|
|
128
|
-
checked: value === option,
|
|
129
|
-
onCheck: () => {
|
|
130
|
-
handleChanges([{ name: responseName, value: option }]);
|
|
131
|
-
},
|
|
132
|
-
onUncheck: () => {
|
|
133
|
-
handleChanges([{ name: responseName, value: null }]);
|
|
134
|
-
},
|
|
135
|
-
shouldBeFiltered: shouldParentBeFiltered,
|
|
136
|
-
};
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
84
|
/**
|
|
140
85
|
* Check if an option should be filtered, depending on its conditionFilter.
|
|
141
86
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propOptions.js","sourceRoot":"","sources":["../../src/use-lunatic/props/propOptions.ts"],"names":[],"mappings":";;AA8BA,
|
|
1
|
+
{"version":3,"file":"propOptions.js","sourceRoot":"","sources":["../../src/use-lunatic/props/propOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,99 +3,69 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const vitest_1 = require("vitest");
|
|
4
4
|
const lunatic_variables_store_1 = require("../commons/variables/lunatic-variables-store");
|
|
5
5
|
const propOptions_1 = require("./propOptions");
|
|
6
|
-
(0, vitest_1.describe)('
|
|
6
|
+
(0, vitest_1.describe)('getOptionsProp()', () => {
|
|
7
7
|
let variables;
|
|
8
|
+
const checkboxGroupDefinition = {
|
|
9
|
+
id: 'CheckboxGroup',
|
|
10
|
+
componentType: 'CheckboxGroup',
|
|
11
|
+
responses: [
|
|
12
|
+
{
|
|
13
|
+
label: 'Option 1',
|
|
14
|
+
response: { name: 'O1' },
|
|
15
|
+
id: 'id1',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: 'Option 2',
|
|
19
|
+
response: { name: 'O2' },
|
|
20
|
+
id: 'id2',
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
const radioDefinition = {
|
|
25
|
+
id: 'RadioGroup',
|
|
26
|
+
componentType: 'Radio',
|
|
27
|
+
response: { name: 'RADIO' },
|
|
28
|
+
options: [
|
|
29
|
+
{
|
|
30
|
+
label: 'Option 1',
|
|
31
|
+
value: 'id1',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
label: 'Option 2',
|
|
35
|
+
value: 'id2',
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
};
|
|
8
39
|
let mockChange;
|
|
9
40
|
const mockLogger = vitest_1.vi.fn();
|
|
10
41
|
(0, vitest_1.beforeEach)(() => {
|
|
11
42
|
mockChange = vitest_1.vi.fn();
|
|
12
43
|
variables = new lunatic_variables_store_1.LunaticVariablesStore();
|
|
13
44
|
});
|
|
14
|
-
(0, vitest_1.describe)('
|
|
15
|
-
const checkboxGroupDefinition = {
|
|
16
|
-
id: 'CheckboxGroup',
|
|
17
|
-
componentType: 'CheckboxGroup',
|
|
18
|
-
responses: [
|
|
19
|
-
{
|
|
20
|
-
label: 'Option 1',
|
|
21
|
-
response: { name: 'O1' },
|
|
22
|
-
id: 'id1',
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
label: 'Option 2',
|
|
26
|
-
response: { name: 'O2' },
|
|
27
|
-
id: 'id2',
|
|
28
|
-
},
|
|
29
|
-
],
|
|
30
|
-
};
|
|
31
|
-
const radioDefinition = {
|
|
32
|
-
id: 'RadioGroup',
|
|
33
|
-
componentType: 'Radio',
|
|
34
|
-
response: { name: 'RADIO' },
|
|
35
|
-
options: [
|
|
36
|
-
{
|
|
37
|
-
label: 'Option 1',
|
|
38
|
-
value: 'id1',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
label: 'Option 2',
|
|
42
|
-
value: 'id2',
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
};
|
|
45
|
+
(0, vitest_1.describe)('CheckboxGroup', () => {
|
|
46
46
|
(0, vitest_1.it)('should check boxes', () => {
|
|
47
47
|
variables.set('O2', false);
|
|
48
|
-
let options = (0, propOptions_1.
|
|
49
|
-
variables,
|
|
50
|
-
handleChanges: mockChange,
|
|
51
|
-
pagerIteration: undefined,
|
|
52
|
-
value: undefined,
|
|
53
|
-
logger: mockLogger,
|
|
54
|
-
});
|
|
48
|
+
let options = (0, propOptions_1.getOptionsProp)(checkboxGroupDefinition, variables, mockChange, undefined, undefined, mockLogger);
|
|
55
49
|
(0, vitest_1.expect)(options[1].checked).toBe(false);
|
|
56
50
|
variables.set('O2', true);
|
|
57
|
-
options = (0, propOptions_1.
|
|
58
|
-
variables,
|
|
59
|
-
handleChanges: mockChange,
|
|
60
|
-
pagerIteration: undefined,
|
|
61
|
-
value: undefined,
|
|
62
|
-
logger: mockLogger,
|
|
63
|
-
});
|
|
51
|
+
options = (0, propOptions_1.getOptionsProp)(checkboxGroupDefinition, variables, mockChange, undefined, undefined, mockLogger);
|
|
64
52
|
(0, vitest_1.expect)(options[1].checked).toBe(true);
|
|
65
53
|
});
|
|
66
54
|
(0, vitest_1.it)('should check boxes correctly within iteration', () => {
|
|
67
55
|
variables.set('O1', []);
|
|
68
56
|
variables.set('O2', []);
|
|
69
|
-
let options = (0, propOptions_1.
|
|
70
|
-
variables,
|
|
71
|
-
handleChanges: mockChange,
|
|
72
|
-
pagerIteration: 0,
|
|
73
|
-
value: undefined,
|
|
74
|
-
logger: mockLogger,
|
|
75
|
-
});
|
|
57
|
+
let options = (0, propOptions_1.getOptionsProp)(checkboxGroupDefinition, variables, mockChange, 0, undefined, mockLogger);
|
|
76
58
|
(0, vitest_1.expect)(options.filter((o) => o.checked), 'Nothing checked when variable empty').toHaveLength(0);
|
|
77
59
|
variables.set('O1', [true, 0]);
|
|
78
|
-
options = (0, propOptions_1.
|
|
79
|
-
variables,
|
|
80
|
-
handleChanges: mockChange,
|
|
81
|
-
pagerIteration: 0,
|
|
82
|
-
value: undefined,
|
|
83
|
-
logger: mockLogger,
|
|
84
|
-
});
|
|
60
|
+
options = (0, propOptions_1.getOptionsProp)(checkboxGroupDefinition, variables, mockChange, 0, undefined, mockLogger);
|
|
85
61
|
(0, vitest_1.expect)(options[0].checked).toBe(true);
|
|
86
62
|
(0, vitest_1.expect)(options[1].checked).toBe(false);
|
|
87
63
|
});
|
|
88
64
|
(0, vitest_1.it)('should create handleChange correctly', () => {
|
|
89
65
|
variables.set('O1', [true, false]);
|
|
90
66
|
variables.set('O2', [false, true]);
|
|
91
|
-
const options = (0, propOptions_1.
|
|
92
|
-
|
|
93
|
-
handleChanges: mockChange,
|
|
94
|
-
pagerIteration: 1,
|
|
95
|
-
value: undefined,
|
|
96
|
-
logger: mockLogger,
|
|
97
|
-
});
|
|
98
|
-
options[1].onCheck?.(false);
|
|
67
|
+
const options = (0, propOptions_1.getOptionsProp)(checkboxGroupDefinition, variables, mockChange, 1, undefined, mockLogger);
|
|
68
|
+
options[1].onCheck(false);
|
|
99
69
|
(0, vitest_1.expect)(mockChange).toHaveBeenLastCalledWith([
|
|
100
70
|
{ name: 'O2', value: false },
|
|
101
71
|
]);
|
|
@@ -126,13 +96,7 @@ const propOptions_1 = require("./propOptions");
|
|
|
126
96
|
],
|
|
127
97
|
};
|
|
128
98
|
variables.set('DETAIL', true);
|
|
129
|
-
const options = (0, propOptions_1.
|
|
130
|
-
variables,
|
|
131
|
-
handleChanges: mockChange,
|
|
132
|
-
pagerIteration: undefined,
|
|
133
|
-
value: undefined,
|
|
134
|
-
logger: mockLogger,
|
|
135
|
-
});
|
|
99
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger);
|
|
136
100
|
(0, vitest_1.expect)(options).toHaveLength(2);
|
|
137
101
|
(0, vitest_1.expect)(options[0].detailLabel).toBe('Precize:');
|
|
138
102
|
(0, vitest_1.expect)(options[1].detailLabel).toBe('Precize:');
|
|
@@ -165,13 +129,7 @@ const propOptions_1 = require("./propOptions");
|
|
|
165
129
|
],
|
|
166
130
|
};
|
|
167
131
|
variables.set('DETAIL', true);
|
|
168
|
-
const options = (0, propOptions_1.
|
|
169
|
-
variables,
|
|
170
|
-
handleChanges: mockChange,
|
|
171
|
-
pagerIteration: undefined,
|
|
172
|
-
value: undefined,
|
|
173
|
-
logger: mockLogger,
|
|
174
|
-
});
|
|
132
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger);
|
|
175
133
|
(0, vitest_1.expect)(options).toHaveLength(2);
|
|
176
134
|
(0, vitest_1.expect)(options[0].detailLabel).toBe('Precize:');
|
|
177
135
|
(0, vitest_1.expect)(options[1].detailLabel).toBe('Precize:');
|
|
@@ -198,13 +156,7 @@ const propOptions_1 = require("./propOptions");
|
|
|
198
156
|
},
|
|
199
157
|
],
|
|
200
158
|
};
|
|
201
|
-
const options = (0, propOptions_1.
|
|
202
|
-
variables,
|
|
203
|
-
handleChanges: mockChange,
|
|
204
|
-
pagerIteration: undefined,
|
|
205
|
-
value: undefined,
|
|
206
|
-
logger: mockLogger,
|
|
207
|
-
});
|
|
159
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger);
|
|
208
160
|
// First option should be filtered out since its conditionFilter is evaluated to false
|
|
209
161
|
(0, vitest_1.expect)(options).toHaveLength(1);
|
|
210
162
|
(0, vitest_1.expect)(options[0].label).toBe('Option 2');
|
|
@@ -225,13 +177,7 @@ const propOptions_1 = require("./propOptions");
|
|
|
225
177
|
},
|
|
226
178
|
],
|
|
227
179
|
};
|
|
228
|
-
const options = (0, propOptions_1.
|
|
229
|
-
variables,
|
|
230
|
-
handleChanges: mockChange,
|
|
231
|
-
pagerIteration: undefined,
|
|
232
|
-
value: undefined,
|
|
233
|
-
logger: mockLogger,
|
|
234
|
-
});
|
|
180
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger);
|
|
235
181
|
// First option should be filtered out since its conditionFilter is evaluated to false
|
|
236
182
|
(0, vitest_1.expect)(options).toHaveLength(1);
|
|
237
183
|
(0, vitest_1.expect)(options[0].label).toBe('Option 2');
|
|
@@ -252,13 +198,7 @@ const propOptions_1 = require("./propOptions");
|
|
|
252
198
|
vitest_1.vi.spyOn(variables, 'run').mockImplementation(() => {
|
|
253
199
|
throw new Error('Test error');
|
|
254
200
|
});
|
|
255
|
-
const options = (0, propOptions_1.
|
|
256
|
-
variables,
|
|
257
|
-
handleChanges: mockChange,
|
|
258
|
-
pagerIteration: undefined,
|
|
259
|
-
value: undefined,
|
|
260
|
-
logger: mockLogger,
|
|
261
|
-
});
|
|
201
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger);
|
|
262
202
|
// Ensure the option is not filtered
|
|
263
203
|
(0, vitest_1.expect)(options).toHaveLength(1);
|
|
264
204
|
(0, vitest_1.expect)(options[0].shouldBeFiltered).toBe(false);
|
|
@@ -278,13 +218,7 @@ const propOptions_1 = require("./propOptions");
|
|
|
278
218
|
vitest_1.vi.spyOn(variables, 'run').mockImplementation(() => {
|
|
279
219
|
throw new Error('Test error');
|
|
280
220
|
});
|
|
281
|
-
const options = (0, propOptions_1.
|
|
282
|
-
variables,
|
|
283
|
-
handleChanges: mockChange,
|
|
284
|
-
pagerIteration: undefined,
|
|
285
|
-
value: undefined,
|
|
286
|
-
logger: mockLogger,
|
|
287
|
-
});
|
|
221
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger);
|
|
288
222
|
// Ensure the option is not filtered
|
|
289
223
|
(0, vitest_1.expect)(options).toHaveLength(1);
|
|
290
224
|
(0, vitest_1.expect)(options[0].shouldBeFiltered).toBe(false);
|
|
@@ -305,14 +239,8 @@ const propOptions_1 = require("./propOptions");
|
|
|
305
239
|
vitest_1.vi.spyOn(variables, 'run').mockImplementation(() => {
|
|
306
240
|
return false;
|
|
307
241
|
});
|
|
308
|
-
const options = (0, propOptions_1.
|
|
309
|
-
|
|
310
|
-
handleChanges: mockChange,
|
|
311
|
-
pagerIteration: undefined,
|
|
312
|
-
value: undefined,
|
|
313
|
-
logger: mockLogger,
|
|
314
|
-
disableFilters: true,
|
|
315
|
-
});
|
|
242
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger, true // disableFilters = true
|
|
243
|
+
);
|
|
316
244
|
// Ensure the option is not filtered
|
|
317
245
|
(0, vitest_1.expect)(options).toHaveLength(1);
|
|
318
246
|
// the option should would have been filtered if we did not disable filters
|
|
@@ -333,14 +261,8 @@ const propOptions_1 = require("./propOptions");
|
|
|
333
261
|
vitest_1.vi.spyOn(variables, 'run').mockImplementation(() => {
|
|
334
262
|
return false;
|
|
335
263
|
});
|
|
336
|
-
const options = (0, propOptions_1.
|
|
337
|
-
|
|
338
|
-
handleChanges: mockChange,
|
|
339
|
-
pagerIteration: undefined,
|
|
340
|
-
value: undefined,
|
|
341
|
-
logger: mockLogger,
|
|
342
|
-
disableFilters: true,
|
|
343
|
-
});
|
|
264
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger, true // disableFilters = true
|
|
265
|
+
);
|
|
344
266
|
// Ensure the option is not filtered
|
|
345
267
|
(0, vitest_1.expect)(options).toHaveLength(1);
|
|
346
268
|
// the option should would have been filtered if we did not disable filters
|
|
@@ -358,15 +280,9 @@ const propOptions_1 = require("./propOptions");
|
|
|
358
280
|
},
|
|
359
281
|
],
|
|
360
282
|
};
|
|
361
|
-
const options = (0, propOptions_1.
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
pagerIteration: undefined,
|
|
365
|
-
value: undefined,
|
|
366
|
-
logger: mockLogger,
|
|
367
|
-
disableFilters: true,
|
|
368
|
-
shouldParentBeFiltered: true,
|
|
369
|
-
});
|
|
283
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger, true, // disableFilters = true
|
|
284
|
+
true // parent component should be filtered
|
|
285
|
+
);
|
|
370
286
|
// Ensure the option is not filtered
|
|
371
287
|
(0, vitest_1.expect)(options).toHaveLength(1);
|
|
372
288
|
// the option would have been filtered if we did not disable filters because its parent would
|
|
@@ -383,92 +299,14 @@ const propOptions_1 = require("./propOptions");
|
|
|
383
299
|
},
|
|
384
300
|
],
|
|
385
301
|
};
|
|
386
|
-
const options = (0, propOptions_1.
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
pagerIteration: undefined,
|
|
390
|
-
value: undefined,
|
|
391
|
-
logger: mockLogger,
|
|
392
|
-
disableFilters: true,
|
|
393
|
-
shouldParentBeFiltered: true,
|
|
394
|
-
});
|
|
302
|
+
const options = (0, propOptions_1.getOptionsProp)(definition, variables, mockChange, undefined, undefined, mockLogger, true, // disableFilters = true
|
|
303
|
+
true // parent component should be filtered
|
|
304
|
+
);
|
|
395
305
|
// Ensure the option is not filtered
|
|
396
306
|
(0, vitest_1.expect)(options).toHaveLength(1);
|
|
397
307
|
// the option would have been filtered if we did not disable filters because its parent would
|
|
398
308
|
(0, vitest_1.expect)(options[0].shouldBeFiltered).toBe(true);
|
|
399
309
|
});
|
|
400
310
|
});
|
|
401
|
-
(0, vitest_1.describe)('Options based on a source variable', () => {
|
|
402
|
-
const radioOptionSourceDefinition = {
|
|
403
|
-
id: 'RadioGroupDynamic',
|
|
404
|
-
componentType: 'Radio',
|
|
405
|
-
response: { name: 'RADIO' },
|
|
406
|
-
optionSource: 'NAME',
|
|
407
|
-
};
|
|
408
|
-
(0, vitest_1.it)('should build options when the source variable is an array of strings', () => {
|
|
409
|
-
variables.set('NAME', ['Maëlle', 'Verso']);
|
|
410
|
-
const options = (0, propOptions_1.computeOptionsFromComponent)(radioOptionSourceDefinition, {
|
|
411
|
-
variables,
|
|
412
|
-
handleChanges: mockChange,
|
|
413
|
-
pagerIteration: undefined,
|
|
414
|
-
value: undefined,
|
|
415
|
-
logger: mockLogger,
|
|
416
|
-
}); // force type but it should infer type correctly
|
|
417
|
-
(0, vitest_1.expect)(options).toHaveLength(2);
|
|
418
|
-
(0, vitest_1.expect)(options[0].value).toBe('Maëlle');
|
|
419
|
-
(0, vitest_1.expect)(options[0].label).toBe('Maëlle');
|
|
420
|
-
(0, vitest_1.expect)(options[1].value).toBe('Verso');
|
|
421
|
-
(0, vitest_1.expect)(options[1].label).toBe('Verso');
|
|
422
|
-
});
|
|
423
|
-
(0, vitest_1.it)('should build options when the source variable is an array of numbers', () => {
|
|
424
|
-
variables.set('NAME', [10, 20]);
|
|
425
|
-
const options = (0, propOptions_1.computeOptionsFromComponent)(radioOptionSourceDefinition, {
|
|
426
|
-
variables,
|
|
427
|
-
handleChanges: mockChange,
|
|
428
|
-
pagerIteration: undefined,
|
|
429
|
-
value: undefined,
|
|
430
|
-
logger: mockLogger,
|
|
431
|
-
}); // force type but it should infer type correctly
|
|
432
|
-
(0, vitest_1.expect)(options).toHaveLength(2);
|
|
433
|
-
(0, vitest_1.expect)(options[0].value).toBe(10);
|
|
434
|
-
(0, vitest_1.expect)(options[0].label).toBe('10');
|
|
435
|
-
(0, vitest_1.expect)(options[1].value).toBe(20);
|
|
436
|
-
(0, vitest_1.expect)(options[1].label).toBe('20');
|
|
437
|
-
});
|
|
438
|
-
(0, vitest_1.it)('should set the response when selecting a dynamic option', () => {
|
|
439
|
-
variables.set('NAME', ['Maëlle', 'Verso']);
|
|
440
|
-
const options = (0, propOptions_1.computeOptionsFromComponent)(radioOptionSourceDefinition, {
|
|
441
|
-
variables,
|
|
442
|
-
handleChanges: mockChange,
|
|
443
|
-
pagerIteration: undefined,
|
|
444
|
-
value: undefined,
|
|
445
|
-
logger: mockLogger,
|
|
446
|
-
}); // force type but it should infer type correctly
|
|
447
|
-
options[0].onCheck?.();
|
|
448
|
-
(0, vitest_1.expect)(mockChange).toHaveBeenLastCalledWith([
|
|
449
|
-
{ name: 'RADIO', value: 'Maëlle' },
|
|
450
|
-
]);
|
|
451
|
-
options[1].onCheck?.();
|
|
452
|
-
(0, vitest_1.expect)(mockChange).toHaveBeenLastCalledWith([
|
|
453
|
-
{ name: 'RADIO', value: 'Verso' },
|
|
454
|
-
]);
|
|
455
|
-
});
|
|
456
|
-
(0, vitest_1.it)('should filter options based on the optionFilter expression', () => {
|
|
457
|
-
const definition = {
|
|
458
|
-
...radioOptionSourceDefinition,
|
|
459
|
-
optionFilter: { type: 'VTL', value: 'AGE >= 18' },
|
|
460
|
-
};
|
|
461
|
-
variables.set('NAME', ['Maëlle', 'Verso', 'Aline']);
|
|
462
|
-
variables.set('AGE', [16, 30, 50]);
|
|
463
|
-
const options = (0, propOptions_1.computeOptionsFromComponent)(definition, {
|
|
464
|
-
variables,
|
|
465
|
-
handleChanges: mockChange,
|
|
466
|
-
pagerIteration: undefined,
|
|
467
|
-
value: undefined,
|
|
468
|
-
logger: mockLogger,
|
|
469
|
-
}); // force type but it should infer type correctly
|
|
470
|
-
(0, vitest_1.expect)(options.map((option) => option.value)).toEqual(['Verso', 'Aline']);
|
|
471
|
-
});
|
|
472
|
-
});
|
|
473
311
|
});
|
|
474
312
|
//# sourceMappingURL=propOptions.spec.js.map
|