@inseefr/lunatic 2.6.4 → 2.6.5
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/radio/html/radio-option.js +5 -3
- package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-resizing.d.ts +1 -1
- package/lib/stories/behaviour/resizing/{test.stories.js → resizing.stories.js} +9 -1
- package/lib/stories/behaviour/resizing/source-resizing-cleaning.json +171 -0
- package/lib/stories/component-set/data-loop.json +1 -1
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-handle-change.js +1 -1
- package/lib/use-lunatic/reducer/reduce-handle-change/reduce-resizing.js +10 -6
- package/lib/use-lunatic/use-lunatic.test.js +35 -2
- package/package.json +1 -1
|
@@ -4,14 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
7
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
-
var
|
|
10
|
-
var _icons = require("../../commons/icons");
|
|
8
|
+
var _react = require("react");
|
|
11
9
|
var _reactKeyboardEventHandler = _interopRequireDefault(require("react-keyboard-event-handler"));
|
|
12
10
|
var _function = require("../../../utils/function");
|
|
11
|
+
var _commons = require("../../commons");
|
|
12
|
+
var _icons = require("../../commons/icons");
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
+
/* eslint-disable jsx-a11y/role-supports-aria-props */
|
|
16
|
+
|
|
15
17
|
function RadioOption(_ref) {
|
|
16
18
|
var checked = _ref.checked,
|
|
17
19
|
_ref$onClick = _ref.onClick,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LunaticState } from '../../type';
|
|
2
1
|
import { type ActionHandleChange } from '../../actions';
|
|
2
|
+
import type { LunaticState } from '../../type';
|
|
3
3
|
declare function reduceResizing(state: LunaticState, action: ActionHandleChange): LunaticState;
|
|
4
4
|
export default reduceResizing;
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = exports.Default = void 0;
|
|
6
|
+
exports["default"] = exports.ResizingWithCleaning = exports.Default = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _orchestrator = _interopRequireDefault(require("../../utils/orchestrator"));
|
|
9
9
|
var _source = _interopRequireDefault(require("./source.json"));
|
|
10
|
+
var _sourceResizingCleaning = _interopRequireDefault(require("./source-resizing-cleaning.json"));
|
|
10
11
|
var _defaultArgTypes = _interopRequireDefault(require("../../utils/default-arg-types"));
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -81,4 +82,11 @@ exports.Default = Default;
|
|
|
81
82
|
Default.args = {
|
|
82
83
|
id: 'resizing-default',
|
|
83
84
|
pagination: true
|
|
85
|
+
};
|
|
86
|
+
var ResizingWithCleaning = Template.bind({});
|
|
87
|
+
exports.ResizingWithCleaning = ResizingWithCleaning;
|
|
88
|
+
ResizingWithCleaning.args = {
|
|
89
|
+
id: 'resizing-with-cleaning',
|
|
90
|
+
source: _sourceResizingCleaning["default"],
|
|
91
|
+
pagination: true
|
|
84
92
|
};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "lfrzny8b",
|
|
3
|
+
"modele": "RP",
|
|
4
|
+
"enoCoreVersion": "2.4.1",
|
|
5
|
+
"lunaticModelVersion": "2.3.1",
|
|
6
|
+
"generatingDate": "28-03-2023 12:57:35",
|
|
7
|
+
"missing": false,
|
|
8
|
+
"pagination": "question",
|
|
9
|
+
"maxPage": "2",
|
|
10
|
+
"label": {
|
|
11
|
+
"value": "\"Resizing with cleaning\"",
|
|
12
|
+
"type": "VTL|MD"
|
|
13
|
+
},
|
|
14
|
+
"components": [
|
|
15
|
+
{
|
|
16
|
+
"page": "1",
|
|
17
|
+
"id": "lfwih8tj-habitants",
|
|
18
|
+
"componentType": "InputNumber",
|
|
19
|
+
"mandatory": false,
|
|
20
|
+
"min": 0,
|
|
21
|
+
"max": 25,
|
|
22
|
+
"label": {
|
|
23
|
+
"value": "\"Nombre d'habitant(s) \"",
|
|
24
|
+
"type": "VTL"
|
|
25
|
+
},
|
|
26
|
+
"declarations": [
|
|
27
|
+
{
|
|
28
|
+
"id": "kb9hi4j0-krnoclfe",
|
|
29
|
+
"declarationType": "HELP",
|
|
30
|
+
"position": "DETACHABLE",
|
|
31
|
+
"label": {
|
|
32
|
+
"value": "\"Changing this value should both clean and resize 'PRENOMS'\"",
|
|
33
|
+
"type": "VTL|MD"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"controls": [
|
|
38
|
+
{
|
|
39
|
+
"id": "lfwih8tj-habitants-CI-0",
|
|
40
|
+
"typeOfControl": "CONSISTENCY",
|
|
41
|
+
"criticality": "ERROR",
|
|
42
|
+
"control": {
|
|
43
|
+
"value": "not(isnull(NB))",
|
|
44
|
+
"type": "VTL"
|
|
45
|
+
},
|
|
46
|
+
"errorMessage": {
|
|
47
|
+
"value": "\"Veuillez entrer un nombre d'habitant(s)\"",
|
|
48
|
+
"type": "VTL"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "lfwih8tj-habitants-CI-1",
|
|
53
|
+
"typeOfControl": "CONSISTENCY",
|
|
54
|
+
"criticality": "ERROR",
|
|
55
|
+
"control": {
|
|
56
|
+
"value": "isnull(NB) or NB >= 0",
|
|
57
|
+
"type": "VTL"
|
|
58
|
+
},
|
|
59
|
+
"errorMessage": {
|
|
60
|
+
"value": "\"Veuillez entrer un nombre d'habitant(s) valide\"",
|
|
61
|
+
"type": "VTL"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"conditionFilter": {
|
|
66
|
+
"value": "true",
|
|
67
|
+
"type": "VTL"
|
|
68
|
+
},
|
|
69
|
+
"response": {
|
|
70
|
+
"name": "NB"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"id": "lfwg2ny2-list-habitants",
|
|
75
|
+
"componentType": "Loop",
|
|
76
|
+
"loopDependencies": ["NB"],
|
|
77
|
+
"iterations": {
|
|
78
|
+
"value": "NB",
|
|
79
|
+
"type": "VTL"
|
|
80
|
+
},
|
|
81
|
+
"page": "2",
|
|
82
|
+
"maxPage": "4",
|
|
83
|
+
"depth": 1,
|
|
84
|
+
"paginatedLoop": true,
|
|
85
|
+
"conditionFilter": {
|
|
86
|
+
"value": "NB >= 1",
|
|
87
|
+
"type": "VTL"
|
|
88
|
+
},
|
|
89
|
+
"components": [
|
|
90
|
+
{
|
|
91
|
+
"id": "lfwg2ny2-prenoms",
|
|
92
|
+
"label": {
|
|
93
|
+
"value": "\"Prénom \"",
|
|
94
|
+
"type": "VTL"
|
|
95
|
+
},
|
|
96
|
+
"conditionFilter": {
|
|
97
|
+
"value": "true",
|
|
98
|
+
"type": "VTL"
|
|
99
|
+
},
|
|
100
|
+
"controls": [
|
|
101
|
+
{
|
|
102
|
+
"id": "lfwg2ny2-prenoms-CI-0",
|
|
103
|
+
"typeOfControl": "CONSISTENCY",
|
|
104
|
+
"criticality": "ERROR",
|
|
105
|
+
"control": {
|
|
106
|
+
"value": "not(nvl(PRENOMS, \"\") = \"\")",
|
|
107
|
+
"type": "VTL"
|
|
108
|
+
},
|
|
109
|
+
"errorMessage": {
|
|
110
|
+
"value": "\"Veuillez entrer un prénom\"",
|
|
111
|
+
"type": "VTL"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"id": "lfwg2ny2-prenoms-CI-1",
|
|
116
|
+
"typeOfControl": "CONSISTENCY",
|
|
117
|
+
"criticality": "ERROR",
|
|
118
|
+
"control": {
|
|
119
|
+
"value": "not(match_characters(PRENOMS, \"^[-'a-zA-ZÀ-ÿœ$*\\s]+$\") = false)",
|
|
120
|
+
"type": "VTL"
|
|
121
|
+
},
|
|
122
|
+
"errorMessage": {
|
|
123
|
+
"value": "\"Votre prénom ne peut pas comporter de chiffres ou caractères spéciaux.\"",
|
|
124
|
+
"type": "VTL"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"componentType": "Input",
|
|
129
|
+
"response": {
|
|
130
|
+
"name": "PRENOMS"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
"variables": [
|
|
137
|
+
{
|
|
138
|
+
"variableType": "COLLECTED",
|
|
139
|
+
"name": "PRENOMS",
|
|
140
|
+
"values": {
|
|
141
|
+
"PREVIOUS": [null],
|
|
142
|
+
"COLLECTED": [null],
|
|
143
|
+
"FORCED": [null],
|
|
144
|
+
"EDITED": [null],
|
|
145
|
+
"INPUTED": [null]
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"variableType": "COLLECTED",
|
|
150
|
+
"name": "NB",
|
|
151
|
+
"values": {
|
|
152
|
+
"PREVIOUS": null,
|
|
153
|
+
"COLLECTED": null,
|
|
154
|
+
"FORCED": null,
|
|
155
|
+
"EDITED": null,
|
|
156
|
+
"INPUTED": null
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
],
|
|
160
|
+
"cleaning": {
|
|
161
|
+
"NB": {
|
|
162
|
+
"PRENOMS": "false"
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"resizing": {
|
|
166
|
+
"NB": {
|
|
167
|
+
"size": "cast(NB, integer)",
|
|
168
|
+
"variables": ["PRENOMS"]
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
@@ -107,7 +107,7 @@ function updateBindings(state, action) {
|
|
|
107
107
|
ub(name, value);
|
|
108
108
|
return state;
|
|
109
109
|
}
|
|
110
|
-
var reducers = (0, _compose["default"])(updateVariables, updateBindings,
|
|
110
|
+
var reducers = (0, _compose["default"])(updateVariables, updateBindings, _reduceMissing["default"], _reduceCleaning["default"], _reduceResizing["default"]);
|
|
111
111
|
function reduceHandleChange(state, action) {
|
|
112
112
|
return reducers(state, action);
|
|
113
113
|
}
|
|
@@ -18,9 +18,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
18
18
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
19
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
20
20
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
21
|
-
function refillValue(size, precSize, value) {
|
|
22
|
-
return (0, _commons2.resizeArrayVariable)(value, size, null);
|
|
23
|
-
}
|
|
24
21
|
function reduceResizingVariables(_ref) {
|
|
25
22
|
var size = _ref.size,
|
|
26
23
|
variableArray = _ref.variableArray,
|
|
@@ -30,12 +27,15 @@ function reduceResizingVariables(_ref) {
|
|
|
30
27
|
if (size === undefined) {
|
|
31
28
|
return {};
|
|
32
29
|
}
|
|
33
|
-
var
|
|
30
|
+
var newSize = executeExpression((0, _commons.getCompatibleVTLExpression)(size));
|
|
34
31
|
return variableArray.reduce(function (acc, v) {
|
|
35
32
|
if (v in variables) {
|
|
36
33
|
var value = variables[v].value;
|
|
37
|
-
var
|
|
38
|
-
|
|
34
|
+
var newValue = (0, _commons2.resizeArrayVariable)(value, newSize, null);
|
|
35
|
+
// Variable had the right size, do nothing
|
|
36
|
+
if (newValue === value) {
|
|
37
|
+
return acc;
|
|
38
|
+
}
|
|
39
39
|
updateBindings(v, newValue);
|
|
40
40
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, v, _objectSpread(_objectSpread({}, variables[v]), {}, {
|
|
41
41
|
value: newValue
|
|
@@ -66,6 +66,10 @@ function reduceResizingLinksVariables(_ref2) {
|
|
|
66
66
|
var newValue = (0, _commons2.resizeArrayVariable)(value.map(function (i) {
|
|
67
67
|
return (0, _commons2.resizeArrayVariable)(i, ySize, null);
|
|
68
68
|
}), xSize, new Array(ySize).fill(null));
|
|
69
|
+
// Variable had the right size, do nothing
|
|
70
|
+
if (newValue === value) {
|
|
71
|
+
return acc;
|
|
72
|
+
}
|
|
69
73
|
updateBindings(v, newValue);
|
|
70
74
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, v, _objectSpread(_objectSpread({}, variables[v]), {}, {
|
|
71
75
|
value: newValue
|
|
@@ -8,8 +8,15 @@ var _source2 = _interopRequireDefault(require("../stories/questionnaires/logemen
|
|
|
8
8
|
var _source3 = _interopRequireDefault(require("../stories/questionnaires/simpsons/source.json"));
|
|
9
9
|
var _source4 = _interopRequireDefault(require("../stories/component-set/source.json"));
|
|
10
10
|
var _source5 = _interopRequireDefault(require("../stories/behaviour/cleaning/source.json"));
|
|
11
|
+
var _sourceResizingCleaning = _interopRequireDefault(require("../stories/behaviour/resizing/source-resizing-cleaning.json"));
|
|
11
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
12
13
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
14
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
15
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
17
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
18
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
19
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
13
20
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
21
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
22
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -200,12 +207,38 @@ var dataFromObject = function dataFromObject(o) {
|
|
|
200
207
|
(0, _vitest.expect)(spy.mock.calls[2][1]).toEqual('US');
|
|
201
208
|
});
|
|
202
209
|
});
|
|
210
|
+
(0, _vitest.describe)('resizing', function () {
|
|
211
|
+
var expectValueForResponse = function expectValueForResponse(spy, responseName, expectedValue) {
|
|
212
|
+
(0, _vitest.expect)(spy).toHaveBeenCalled();
|
|
213
|
+
var lastChangeCall = _toConsumableArray(spy.mock.calls).reverse().find(function (args) {
|
|
214
|
+
return args[0].name === responseName;
|
|
215
|
+
});
|
|
216
|
+
(0, _vitest.expect)(lastChangeCall[1], 'onChange should have been called with the right value').toEqual(expectedValue);
|
|
217
|
+
};
|
|
218
|
+
(0, _vitest.it)('should resize after cleaning', function () {
|
|
219
|
+
var spy = _vitest.vi.fn();
|
|
220
|
+
var _renderHook11 = (0, _reactHooks.renderHook)(function () {
|
|
221
|
+
return (0, _useLunatic["default"])(_sourceResizingCleaning["default"], undefined, {
|
|
222
|
+
onChange: spy
|
|
223
|
+
});
|
|
224
|
+
}),
|
|
225
|
+
result = _renderHook11.result;
|
|
226
|
+
result.current.onChange({
|
|
227
|
+
name: 'NB'
|
|
228
|
+
}, 3);
|
|
229
|
+
expectValueForResponse(spy, 'PRENOMS', [null, null, null]);
|
|
230
|
+
result.current.onChange({
|
|
231
|
+
name: 'NB'
|
|
232
|
+
}, 2);
|
|
233
|
+
expectValueForResponse(spy, 'PRENOMS', [null, null]);
|
|
234
|
+
});
|
|
235
|
+
});
|
|
203
236
|
(0, _vitest.describe)('getComponents()', function () {
|
|
204
237
|
(0, _vitest.describe)('componentSet', function () {
|
|
205
|
-
var
|
|
238
|
+
var _renderHook12 = (0, _reactHooks.renderHook)(function () {
|
|
206
239
|
return (0, _useLunatic["default"])(_source4["default"], undefined, {});
|
|
207
240
|
}),
|
|
208
|
-
result =
|
|
241
|
+
result = _renderHook12.result;
|
|
209
242
|
var getComponents = function getComponents() {
|
|
210
243
|
return result.current.getComponents();
|
|
211
244
|
};
|