@inseefr/lunatic 2.4.9 → 2.5.0-beta
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/commons/components/orchestrated-component.js +10 -30
- package/lib/components/commons/create-row-orchestrator.js +7 -2
- package/lib/components/component-set/html/component-set-components.js +16 -25
- package/lib/components/component-set/lunatic-component-set.js +23 -37
- package/lib/components/index.js +14 -0
- package/lib/components/loop/block-for-loop/block-for-loop.js +4 -2
- package/lib/components/loop/block-for-loop/row.js +4 -2
- package/lib/components/loop/loop.js +6 -3
- package/lib/components/loop/roster-for-loop/body.js +4 -2
- package/lib/components/loop/roster-for-loop/roster-for-loop.js +2 -0
- package/lib/components/loop/roster-for-loop/roster-table.js +4 -2
- package/lib/components/loop/roster-for-loop/row.js +3 -1
- package/lib/components/question-explication/html/question-explication.js +53 -0
- package/lib/components/question-explication/html/question-explication.scss +35 -0
- package/lib/components/question-explication/index.js +13 -0
- package/lib/components/question-explication/lunatic-question-explication.js +32 -0
- package/lib/components/question-explication/question-explication.spec.js +49 -0
- package/lib/components/roundabout/lunatic-roundabout.js +2 -4
- package/lib/components/subsequence/subsequence.js +0 -2
- package/lib/components/subsequence/subsequence.spec.js +2 -2
- package/lib/components/summary/html/summary-container.js +14 -0
- package/lib/components/summary/html/summary-responses.js +53 -0
- package/lib/components/summary/html/summary-title.js +20 -0
- package/lib/components/summary/index.js +12 -0
- package/lib/components/summary/lunatic-summary.js +99 -0
- package/lib/src/components/commons/components/orchestrated-component.d.ts +4 -5
- package/lib/src/components/commons/create-row-orchestrator.d.ts +3 -2
- package/lib/src/components/component-set/html/component-set-components.d.ts +2 -2
- package/lib/src/components/component-set/lunatic-component-set.d.ts +2 -1
- package/lib/src/components/index.d.ts +2 -0
- package/lib/src/components/loop/block-for-loop/block-for-loop-ochestrator.d.ts +3 -2
- package/lib/src/components/loop/block-for-loop/row.d.ts +2 -1
- package/lib/src/components/loop/roster-for-loop/body.d.ts +2 -2
- package/lib/src/components/loop/roster-for-loop/roster-for-loop-orchestrator.d.ts +3 -2
- package/lib/src/components/loop/roster-for-loop/roster-table.d.ts +2 -2
- package/lib/src/components/loop/roster-for-loop/row.d.ts +2 -1
- package/lib/src/components/question-explication/html/question-explication.d.ts +7 -0
- package/lib/src/components/question-explication/index.d.ts +1 -0
- package/lib/src/components/question-explication/lunatic-question-explication.d.ts +3 -0
- package/lib/src/components/question-explication/question-explication.spec.d.ts +1 -0
- package/lib/src/components/subsequence/subsequence.d.ts +2 -2
- package/lib/src/components/summary/html/summary-container.d.ts +2 -0
- package/lib/src/components/summary/html/summary-responses.d.ts +12 -0
- package/lib/src/components/summary/html/summary-title.d.ts +5 -0
- package/lib/src/components/summary/index.d.ts +1 -0
- package/lib/src/components/summary/lunatic-summary.d.ts +7 -0
- package/lib/src/components/type.d.ts +18 -0
- package/lib/src/index.d.ts +1 -0
- package/lib/src/use-lunatic/actions.d.ts +6 -169
- package/lib/src/use-lunatic/commons/fill-components/fill-from-state.d.ts +137 -112
- package/lib/src/use-lunatic/commons/fill-components/fill-missing-response.d.ts +2 -1
- package/lib/src/use-lunatic/commons/fill-components/fill-specific-expression.d.ts +115 -94
- package/lib/src/use-lunatic/commons/page-navigation.d.ts +7 -0
- package/lib/src/use-lunatic/commons/page-navigation.spec.d.ts +1 -0
- package/lib/src/use-lunatic/commons/page.d.ts +11 -0
- package/lib/src/use-lunatic/commons/use-components-from-state.d.ts +1 -1
- package/lib/src/use-lunatic/reducer/commons/auto-explore-loop.d.ts +5 -0
- package/lib/src/use-lunatic/reducer/commons/index.d.ts +0 -1
- package/lib/src/use-lunatic/reducer/commons/is-loop-component.d.ts +2 -2
- package/lib/src/use-lunatic/reducer/overview/overview-on-init.d.ts +1 -7
- package/lib/src/use-lunatic/replace-component-sequence.d.ts +3 -3
- package/lib/src/use-lunatic/type-source.d.ts +27 -13
- package/lib/src/use-lunatic/type.d.ts +4 -12
- package/lib/src/use-lunatic/use-lunatic.d.ts +474 -10
- package/lib/src/utils/store-tools/worker-path.d.ts +1 -0
- package/lib/stories/component-set/component-set.stories.js +2 -1
- package/lib/stories/loop/block-for-loop.stories.js +8 -1
- package/lib/stories/loop/roster-for-loop.stories.js +8 -1
- package/lib/{use-lunatic/reducer/reduce-roundabout.js → stories/question-explication/question-explication.stories.js} +21 -17
- package/lib/stories/question-explication/source.json +17 -0
- package/lib/stories/roundabout/roundabout.stories.js +2 -1
- package/lib/stories/suggester/source-component-set.json +67 -0
- package/lib/stories/suggester/suggester.stories.js +9 -1
- package/lib/stories/summary/data.json +32 -0
- package/lib/stories/summary/source.json +353 -0
- package/lib/stories/summary/summary.stories.js +37 -0
- package/lib/stories/utils/orchestrator.js +5 -3
- package/lib/use-lunatic/commons/check-pager.js +1 -2
- package/lib/use-lunatic/commons/fill-components/fill-missing-response.js +14 -12
- package/lib/use-lunatic/commons/page-navigation.js +109 -0
- package/lib/use-lunatic/commons/page-navigation.spec.js +129 -0
- package/lib/use-lunatic/commons/page.js +44 -0
- package/lib/use-lunatic/reducer/commons/auto-explore-loop.js +39 -0
- package/lib/use-lunatic/reducer/commons/index.js +0 -8
- package/lib/use-lunatic/reducer/reduce-go-next-page.js +25 -159
- package/lib/use-lunatic/reducer/reduce-go-previous-page.js +21 -127
- package/lib/use-lunatic/reducer/reduce-go-to-page.js +53 -55
- package/lib/use-lunatic/reducer/reduce-on-init.js +5 -8
- package/lib/use-lunatic/reducer/resolve-component-controls/resolve-roundabout-control.js +1 -1
- package/lib/use-lunatic/reducer/resolve-component-controls/resolve-simple-control.js +1 -1
- package/lib/use-lunatic/type-source.js +0 -2
- package/lib/use-lunatic/use-lunatic.js +17 -3
- package/lib/utils/store-tools/auto-load.js +2 -2
- package/lib/utils/store-tools/worker-path.js +13 -0
- package/lib/utils/suggester-workers/append-to-index/create-append-task.js +2 -2
- package/package.json +3 -3
- package/lib/components/button/__snapshots__/lunatic-button.spec.jsx.snap +0 -80
- package/lib/components/commons/components/combo-box/selection/__snapshots__/selection.spec.jsx.snap +0 -81
- package/lib/src/use-lunatic/reducer/commons/is-empty-on-empty-page.d.ts +0 -3
- package/lib/src/use-lunatic/reducer/reduce-roundabout.d.ts +0 -2
- package/lib/use-lunatic/reducer/commons/is-empty-on-empty-page.js +0 -32
|
@@ -13,7 +13,7 @@ var _overview = require("./overview");
|
|
|
13
13
|
var _waiting = _interopRequireDefault(require("./waiting"));
|
|
14
14
|
var _logger = require("../../utils/logger");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
-
var _excluded = ["source", "data", "management", "shortcut", "activeControls", "features", "initialPage", "getStoreInfo", "missing", "missingStrategy", "missingShortcut", "autoSuggesterLoading", "addExternal", "preferences", "custom", "showOverview", "filterDescription", "getReferentiel", "dontKnowButton", "refusedButton"],
|
|
16
|
+
var _excluded = ["source", "data", "management", "shortcut", "activeControls", "features", "initialPage", "getStoreInfo", "missing", "missingStrategy", "missingShortcut", "autoSuggesterLoading", "addExternal", "preferences", "custom", "showOverview", "filterDescription", "getReferentiel", "dontKnowButton", "refusedButton", "readOnly"],
|
|
17
17
|
_excluded2 = ["id", "componentType", "response", "storeName", "conditionFilter"];
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
19
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -63,7 +63,7 @@ function DevOptions(_ref) {
|
|
|
63
63
|
});
|
|
64
64
|
},
|
|
65
65
|
children: "Go to page ".concat(toPage)
|
|
66
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(lunatic.
|
|
66
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(lunatic.Input, {
|
|
67
67
|
id: "page-to-jump",
|
|
68
68
|
value: toPage,
|
|
69
69
|
handleChange: handleChange,
|
|
@@ -147,6 +147,7 @@ function OrchestratorForStories(_ref3) {
|
|
|
147
147
|
getReferentiel = _ref3.getReferentiel,
|
|
148
148
|
dontKnowButton = _ref3.dontKnowButton,
|
|
149
149
|
refusedButton = _ref3.refusedButton,
|
|
150
|
+
readOnly = _ref3.readOnly,
|
|
150
151
|
rest = _objectWithoutProperties(_ref3, _excluded);
|
|
151
152
|
var maxPage = source.maxPage;
|
|
152
153
|
var _lunatic$useLunatic = lunatic.useLunatic(source, data, {
|
|
@@ -229,7 +230,8 @@ function OrchestratorForStories(_ref3) {
|
|
|
229
230
|
}, other), rest), component), storeInfo), {}, {
|
|
230
231
|
// fill error when needed
|
|
231
232
|
errors: errorActive[pageTag],
|
|
232
|
-
filterDescription: filterDescription
|
|
233
|
+
filterDescription: filterDescription,
|
|
234
|
+
disabled: readOnly
|
|
233
235
|
}))
|
|
234
236
|
}, "component-".concat(id));
|
|
235
237
|
})
|
|
@@ -14,20 +14,22 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
14
14
|
* Inject the value for the missingResponse variable
|
|
15
15
|
*/
|
|
16
16
|
function fillMissingResponse(component, state) {
|
|
17
|
+
// Component does not have a missing response
|
|
18
|
+
if (!('missingResponse' in component) || !component.missingResponse) {
|
|
19
|
+
return component;
|
|
20
|
+
}
|
|
17
21
|
var missingResponse = component.missingResponse;
|
|
18
22
|
var variables = state.variables,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
});
|
|
30
|
-
}
|
|
23
|
+
pager = state.pager;
|
|
24
|
+
var name = missingResponse.name;
|
|
25
|
+
if (name in variables) {
|
|
26
|
+
var value = variables[name].value;
|
|
27
|
+
var missingValue = pager.iteration === undefined ? value : value[pager.iteration];
|
|
28
|
+
return _objectSpread(_objectSpread({}, component), {}, {
|
|
29
|
+
missingResponse: _objectSpread(_objectSpread({}, missingResponse), {}, {
|
|
30
|
+
value: missingValue
|
|
31
|
+
})
|
|
32
|
+
});
|
|
31
33
|
}
|
|
32
34
|
return component;
|
|
33
35
|
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
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); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getNextPager = getNextPager;
|
|
8
|
+
exports.getPrevPager = getPrevPager;
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
14
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
15
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure 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 _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; }
|
|
18
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
19
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
|
+
var resetIteration = {
|
|
21
|
+
subPage: undefined,
|
|
22
|
+
nbSubPages: undefined,
|
|
23
|
+
iteration: undefined,
|
|
24
|
+
nbIterations: undefined
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Increment the pager to reach the next page or iteration
|
|
29
|
+
*/
|
|
30
|
+
function getNextPager(pager, parent) {
|
|
31
|
+
// Increment the page or subPage
|
|
32
|
+
var _ref = pager.subPage !== undefined ? [parseInt(pager.page, 10), pager.subPage + 1] : [parseInt(pager.page, 10) + 1, undefined],
|
|
33
|
+
_ref2 = _slicedToArray(_ref, 2),
|
|
34
|
+
page = _ref2[0],
|
|
35
|
+
subPage = _ref2[1];
|
|
36
|
+
var iteration = pager.iteration;
|
|
37
|
+
|
|
38
|
+
// We reached the end of the questionnaire
|
|
39
|
+
if (page > parseInt(pager.maxPage, 10)) {
|
|
40
|
+
return pager;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// We reached the end of the sequence
|
|
44
|
+
var isEndSequence = subPage && pager.nbSubPages ? subPage >= pager.nbSubPages : false;
|
|
45
|
+
var moveUpOnEnd = parent === 'Roundabout';
|
|
46
|
+
// Move up at the end of a sequence (instead of going to the next Iteration)
|
|
47
|
+
if (isEndSequence && moveUpOnEnd) {
|
|
48
|
+
return _objectSpread(_objectSpread({}, pager), {}, {
|
|
49
|
+
page: page.toString()
|
|
50
|
+
}, resetIteration);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Move to the next parent page (for loops)
|
|
54
|
+
if (isEndSequence && iteration !== undefined) {
|
|
55
|
+
subPage = 0;
|
|
56
|
+
iteration++;
|
|
57
|
+
}
|
|
58
|
+
// We reached the end of an iteration, move up
|
|
59
|
+
if (iteration !== undefined && pager.nbIterations && iteration >= pager.nbIterations) {
|
|
60
|
+
return getNextPager(_objectSpread(_objectSpread({}, pager), {}, {
|
|
61
|
+
page: page.toString()
|
|
62
|
+
}, resetIteration), parent);
|
|
63
|
+
}
|
|
64
|
+
return _objectSpread(_objectSpread({}, pager), {}, {
|
|
65
|
+
page: page.toString(),
|
|
66
|
+
subPage: subPage,
|
|
67
|
+
iteration: iteration
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function getPrevPager(pager, parent) {
|
|
71
|
+
// Decrement the page or subPage
|
|
72
|
+
var _ref3 = pager.subPage !== undefined ? [parseInt(pager.page, 10), pager.subPage - 1] : [parseInt(pager.page, 10) - 1, undefined],
|
|
73
|
+
_ref4 = _slicedToArray(_ref3, 2),
|
|
74
|
+
page = _ref4[0],
|
|
75
|
+
subPage = _ref4[1];
|
|
76
|
+
var iteration = pager.iteration;
|
|
77
|
+
var moveUpOnStart = parent === 'Roundabout';
|
|
78
|
+
|
|
79
|
+
// We reached the start of the questionnaire
|
|
80
|
+
if (page <= 0) {
|
|
81
|
+
return pager;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// We reached the start of the sequence, move up
|
|
85
|
+
if (subPage !== undefined && pager.nbSubPages !== undefined && subPage < 0) {
|
|
86
|
+
var _iteration;
|
|
87
|
+
// Move up at the start of an iteration (for roundabout)
|
|
88
|
+
if (moveUpOnStart) {
|
|
89
|
+
return _objectSpread(_objectSpread({}, pager), {}, {
|
|
90
|
+
page: page.toString()
|
|
91
|
+
}, resetIteration);
|
|
92
|
+
}
|
|
93
|
+
subPage = pager.nbSubPages - 1;
|
|
94
|
+
iteration = ((_iteration = iteration) !== null && _iteration !== void 0 ? _iteration : 0) - 1;
|
|
95
|
+
}
|
|
96
|
+
var isStartSequence = iteration !== undefined && iteration < 0;
|
|
97
|
+
|
|
98
|
+
// We reached the start of an iteration, keep going backward
|
|
99
|
+
if (isStartSequence) {
|
|
100
|
+
return getPrevPager(_objectSpread(_objectSpread({}, pager), {}, {
|
|
101
|
+
page: page.toString()
|
|
102
|
+
}, resetIteration), parent);
|
|
103
|
+
}
|
|
104
|
+
return _objectSpread(_objectSpread({}, pager), {}, {
|
|
105
|
+
page: page.toString(),
|
|
106
|
+
subPage: subPage,
|
|
107
|
+
iteration: iteration
|
|
108
|
+
});
|
|
109
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _vitest = require("vitest");
|
|
4
|
+
var _pageNavigation = require("./page-navigation");
|
|
5
|
+
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); }
|
|
6
|
+
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; }
|
|
7
|
+
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; }
|
|
8
|
+
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; }
|
|
9
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
10
|
+
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); }
|
|
11
|
+
(0, _vitest.describe)('page-navigation', function () {
|
|
12
|
+
(0, _vitest.describe)('getNextPager', function () {
|
|
13
|
+
var base = {
|
|
14
|
+
page: '2',
|
|
15
|
+
maxPage: '3',
|
|
16
|
+
subPage: 0,
|
|
17
|
+
nbSubPages: 3,
|
|
18
|
+
iteration: 0,
|
|
19
|
+
nbIterations: 2
|
|
20
|
+
};
|
|
21
|
+
(0, _vitest.it)('should navigate inside a sequence', function () {
|
|
22
|
+
(0, _vitest.expect)((0, _pageNavigation.getNextPager)(base)).toEqual(_objectSpread(_objectSpread({}, base), {}, {
|
|
23
|
+
subPage: 1
|
|
24
|
+
}));
|
|
25
|
+
});
|
|
26
|
+
(0, _vitest.it)('should increment iteration at the end of a sequence', function () {
|
|
27
|
+
var pager = _objectSpread(_objectSpread({}, base), {}, {
|
|
28
|
+
subPage: 2
|
|
29
|
+
});
|
|
30
|
+
(0, _vitest.expect)((0, _pageNavigation.getNextPager)(pager).subPage).toEqual(0);
|
|
31
|
+
(0, _vitest.expect)((0, _pageNavigation.getNextPager)(pager).iteration).toEqual(1);
|
|
32
|
+
});
|
|
33
|
+
(0, _vitest.it)('should move up at the end of a sequence and an iteration', function () {
|
|
34
|
+
var pager = _objectSpread(_objectSpread({}, base), {}, {
|
|
35
|
+
subPage: 3,
|
|
36
|
+
iteration: 1
|
|
37
|
+
});
|
|
38
|
+
var reset = {
|
|
39
|
+
subPage: undefined,
|
|
40
|
+
nbSubPages: undefined,
|
|
41
|
+
iteration: undefined,
|
|
42
|
+
nbIterations: undefined
|
|
43
|
+
};
|
|
44
|
+
(0, _vitest.expect)((0, _pageNavigation.getNextPager)(pager)).toEqual(_objectSpread(_objectSpread(_objectSpread({}, pager), reset), {}, {
|
|
45
|
+
page: '3'
|
|
46
|
+
}));
|
|
47
|
+
(0, _vitest.expect)((0, _pageNavigation.getNextPager)(pager, 'Roundabout')).toEqual(_objectSpread(_objectSpread(_objectSpread({}, pager), reset), {}, {
|
|
48
|
+
page: '2'
|
|
49
|
+
}));
|
|
50
|
+
});
|
|
51
|
+
(0, _vitest.it)('should navigate on simple page without iteration', function () {
|
|
52
|
+
var pager = {
|
|
53
|
+
page: '1',
|
|
54
|
+
maxPage: '3',
|
|
55
|
+
iteration: undefined
|
|
56
|
+
};
|
|
57
|
+
(0, _vitest.expect)((0, _pageNavigation.getNextPager)(pager).page).toEqual('2');
|
|
58
|
+
});
|
|
59
|
+
(0, _vitest.it)('should stop at the last page', function () {
|
|
60
|
+
var pager = {
|
|
61
|
+
page: '3',
|
|
62
|
+
maxPage: '3',
|
|
63
|
+
iteration: undefined
|
|
64
|
+
};
|
|
65
|
+
(0, _vitest.expect)((0, _pageNavigation.getNextPager)(pager).page).toEqual('3');
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
(0, _vitest.describe)('getPrevPager', function () {
|
|
69
|
+
var base = {
|
|
70
|
+
page: '2',
|
|
71
|
+
maxPage: '3',
|
|
72
|
+
subPage: 2,
|
|
73
|
+
nbSubPages: 3,
|
|
74
|
+
iteration: 1,
|
|
75
|
+
nbIterations: 2
|
|
76
|
+
};
|
|
77
|
+
(0, _vitest.it)('should navigate inside a sequence', function () {
|
|
78
|
+
(0, _vitest.expect)((0, _pageNavigation.getPrevPager)(base)).toEqual(_objectSpread(_objectSpread({}, base), {}, {
|
|
79
|
+
subPage: 1
|
|
80
|
+
}));
|
|
81
|
+
});
|
|
82
|
+
(0, _vitest.it)('should decrement iteration at the start of a sequence', function () {
|
|
83
|
+
var pager = _objectSpread(_objectSpread({}, base), {}, {
|
|
84
|
+
subPage: 0
|
|
85
|
+
});
|
|
86
|
+
(0, _vitest.expect)((0, _pageNavigation.getPrevPager)(pager).subPage).toEqual(2);
|
|
87
|
+
(0, _vitest.expect)((0, _pageNavigation.getPrevPager)(pager).iteration).toEqual(0);
|
|
88
|
+
});
|
|
89
|
+
(0, _vitest.it)('should move up at the start of a sequence and an iteration', function () {
|
|
90
|
+
var pager = _objectSpread(_objectSpread({}, base), {}, {
|
|
91
|
+
subPage: 0,
|
|
92
|
+
iteration: 0
|
|
93
|
+
});
|
|
94
|
+
var reset = {
|
|
95
|
+
subPage: undefined,
|
|
96
|
+
nbSubPages: undefined,
|
|
97
|
+
iteration: undefined,
|
|
98
|
+
nbIterations: undefined
|
|
99
|
+
};
|
|
100
|
+
(0, _vitest.expect)((0, _pageNavigation.getPrevPager)(pager)).toEqual(_objectSpread(_objectSpread(_objectSpread({}, pager), reset), {}, {
|
|
101
|
+
page: '1'
|
|
102
|
+
}));
|
|
103
|
+
(0, _vitest.expect)((0, _pageNavigation.getPrevPager)(pager, 'Roundabout')).toEqual(_objectSpread(_objectSpread(_objectSpread({}, pager), reset), {}, {
|
|
104
|
+
page: '2'
|
|
105
|
+
}));
|
|
106
|
+
(0, _vitest.expect)((0, _pageNavigation.getPrevPager)(_objectSpread(_objectSpread({}, pager), {}, {
|
|
107
|
+
iteration: 1
|
|
108
|
+
}), 'Roundabout')).toEqual(_objectSpread(_objectSpread(_objectSpread({}, pager), reset), {}, {
|
|
109
|
+
page: '2'
|
|
110
|
+
}));
|
|
111
|
+
});
|
|
112
|
+
(0, _vitest.it)('should navigate on simple page without iteration', function () {
|
|
113
|
+
var pager = {
|
|
114
|
+
page: '2',
|
|
115
|
+
maxPage: '3',
|
|
116
|
+
iteration: undefined
|
|
117
|
+
};
|
|
118
|
+
(0, _vitest.expect)((0, _pageNavigation.getPrevPager)(pager).page).toEqual('1');
|
|
119
|
+
});
|
|
120
|
+
(0, _vitest.it)('should stop at the first page', function () {
|
|
121
|
+
var pager = {
|
|
122
|
+
page: '1',
|
|
123
|
+
maxPage: '3',
|
|
124
|
+
iteration: undefined
|
|
125
|
+
};
|
|
126
|
+
(0, _vitest.expect)((0, _pageNavigation.getPrevPager)(pager).page).toEqual('1');
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPageId = getPageId;
|
|
7
|
+
exports.isPageEmpty = isPageEmpty;
|
|
8
|
+
exports.pageStringToNumbers = pageStringToNumbers;
|
|
9
|
+
var _index = require("./index");
|
|
10
|
+
function getPageId(_ref) {
|
|
11
|
+
var subPage = _ref.subPage,
|
|
12
|
+
page = _ref.page;
|
|
13
|
+
if (subPage === undefined) {
|
|
14
|
+
return page;
|
|
15
|
+
}
|
|
16
|
+
return "".concat(page, ".").concat(subPage + 1);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Converts a page number (3.1.2) to an array of numbers [3, 1, 2]
|
|
21
|
+
*/
|
|
22
|
+
function pageStringToNumbers(page) {
|
|
23
|
+
return page.split('.').map(function (v) {
|
|
24
|
+
return parseInt(v, 10);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Check if we are on an empty page
|
|
30
|
+
* if no components can be displayed on this page (using filter)
|
|
31
|
+
*/
|
|
32
|
+
function isPageEmpty(state) {
|
|
33
|
+
var executeExpression = state.executeExpression,
|
|
34
|
+
pager = state.pager;
|
|
35
|
+
var iteration = pager.iteration;
|
|
36
|
+
var components = (0, _index.getComponentsFromState)(state);
|
|
37
|
+
return components.filter(function (component) {
|
|
38
|
+
var conditionFilter = component.conditionFilter;
|
|
39
|
+
if (conditionFilter) {
|
|
40
|
+
return (0, _index.executeConditionFilter)(conditionFilter, executeExpression, iteration);
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}).length === 0;
|
|
44
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.autoExploreLoop = autoExploreLoop;
|
|
7
|
+
var _page = require("../../commons/page");
|
|
8
|
+
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); }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
14
|
+
/**
|
|
15
|
+
* Update the pager to enter a loop if the pager is on a loop
|
|
16
|
+
*/
|
|
17
|
+
function autoExploreLoop(state) {
|
|
18
|
+
var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'forward';
|
|
19
|
+
var newPager = _objectSpread({}, state.pager);
|
|
20
|
+
var pageId = (0, _page.getPageId)(newPager);
|
|
21
|
+
var page = state.pages[pageId];
|
|
22
|
+
var isForward = direction === 'forward';
|
|
23
|
+
// The page is a loop
|
|
24
|
+
if (page.isLoop && page.subPages && page.subPages.length > 0) {
|
|
25
|
+
var maxSubPage = page.subPages.length;
|
|
26
|
+
var firstSubPage = (0, _page.pageStringToNumbers)(page.subPages[isForward ? 0 : maxSubPage - 1]);
|
|
27
|
+
newPager.page = firstSubPage[0].toString();
|
|
28
|
+
newPager.subPage = firstSubPage[1] - 1; // Subpage starts at 0
|
|
29
|
+
newPager.nbSubPages = maxSubPage;
|
|
30
|
+
newPager.nbIterations = state.executeExpression(page.iterations, {
|
|
31
|
+
iteration: newPager.iteration
|
|
32
|
+
});
|
|
33
|
+
newPager.iteration = isForward ? 0 : newPager.nbIterations - 1;
|
|
34
|
+
}
|
|
35
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
36
|
+
isInLoop: newPager.nbIterations !== undefined,
|
|
37
|
+
pager: newPager
|
|
38
|
+
});
|
|
39
|
+
}
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
var _exportNames = {
|
|
7
|
-
isOnEmptyPage: true,
|
|
8
7
|
resizeArrayVariable: true,
|
|
9
8
|
isLoopComponent: true
|
|
10
9
|
};
|
|
@@ -14,19 +13,12 @@ Object.defineProperty(exports, "isLoopComponent", {
|
|
|
14
13
|
return _isLoopComponent.isLoopComponent;
|
|
15
14
|
}
|
|
16
15
|
});
|
|
17
|
-
Object.defineProperty(exports, "isOnEmptyPage", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
get: function get() {
|
|
20
|
-
return _isEmptyOnEmptyPage["default"];
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
16
|
Object.defineProperty(exports, "resizeArrayVariable", {
|
|
24
17
|
enumerable: true,
|
|
25
18
|
get: function get() {
|
|
26
19
|
return _resizeArrayVariable["default"];
|
|
27
20
|
}
|
|
28
21
|
});
|
|
29
|
-
var _isEmptyOnEmptyPage = _interopRequireDefault(require("./is-empty-on-empty-page"));
|
|
30
22
|
var _resizeArrayVariable = _interopRequireDefault(require("./resize-array-variable"));
|
|
31
23
|
var _isLoopComponent = require("./is-loop-component");
|
|
32
24
|
var _validateConditionFilter = require("./validate-condition-filter");
|
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports["default"] = void 0;
|
|
7
7
|
var _commons = require("../commons");
|
|
8
8
|
var _compose = _interopRequireDefault(require("../commons/compose"));
|
|
9
|
-
var _commons2 = require("./commons");
|
|
10
9
|
var _overviewOnChange = require("./overview/overview-on-change");
|
|
11
|
-
var
|
|
10
|
+
var _pageNavigation = require("../commons/page-navigation");
|
|
11
|
+
var _page = require("../commons/page");
|
|
12
|
+
var _autoExploreLoop = require("./commons/auto-explore-loop");
|
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
14
|
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
15
|
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; }
|
|
@@ -16,166 +17,31 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
16
17
|
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; }
|
|
17
18
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
18
19
|
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); }
|
|
19
|
-
function getNextPage(state) {
|
|
20
|
-
var pager = state.pager;
|
|
21
|
-
var page = pager.page,
|
|
22
|
-
maxPage = pager.maxPage;
|
|
23
|
-
var p = Number.parseInt(page);
|
|
24
|
-
var mp = Number.parseInt(maxPage);
|
|
25
|
-
if (p < mp) {
|
|
26
|
-
return "".concat(p + 1);
|
|
27
|
-
}
|
|
28
|
-
return "".concat(maxPage);
|
|
29
|
-
}
|
|
30
|
-
function reduceNextSubPage(state) {
|
|
31
|
-
var pager = state.pager;
|
|
32
|
-
var subPage = pager.subPage;
|
|
33
|
-
var newPager = _objectSpread(_objectSpread({}, pager), {}, {
|
|
34
|
-
subPage: (subPage !== null && subPage !== void 0 ? subPage : 0) + 1,
|
|
35
|
-
shallowIteration: undefined
|
|
36
|
-
});
|
|
37
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
38
|
-
pager: _objectSpread(_objectSpread({}, newPager), {}, {
|
|
39
|
-
lastReachedPage: (0, _commons.getNewReachedPage)(newPager)
|
|
40
|
-
}),
|
|
41
|
-
modalErrors: undefined
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
function reduceNextIteration(state) {
|
|
45
|
-
var pager = state.pager;
|
|
46
|
-
var iteration = pager.iteration,
|
|
47
|
-
roundabout = pager.roundabout;
|
|
48
|
-
if (roundabout) {
|
|
49
|
-
return (0, _reduceRoundabout.reduceToRoundabout)(state);
|
|
50
|
-
}
|
|
51
|
-
var newPager = _objectSpread(_objectSpread({}, pager), {}, {
|
|
52
|
-
subPage: 0,
|
|
53
|
-
iteration: (iteration !== null && iteration !== void 0 ? iteration : 0) + 1
|
|
54
|
-
});
|
|
55
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
56
|
-
pager: _objectSpread(_objectSpread({}, newPager), {}, {
|
|
57
|
-
lastReachedPage: (0, _commons.getNewReachedPage)(newPager)
|
|
58
|
-
}),
|
|
59
|
-
modalErrors: undefined
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
function reduceNextPage(state, _ref) {
|
|
63
|
-
var next = _ref.next;
|
|
64
|
-
var pager = state.pager;
|
|
65
|
-
var newPager = _objectSpread(_objectSpread({}, pager), {}, {
|
|
66
|
-
page: next,
|
|
67
|
-
iteration: undefined,
|
|
68
|
-
nbIterations: undefined,
|
|
69
|
-
subPage: undefined,
|
|
70
|
-
nbSubPages: undefined,
|
|
71
|
-
shallowIteration: undefined
|
|
72
|
-
});
|
|
73
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
74
|
-
isInLoop: false,
|
|
75
|
-
pager: _objectSpread(_objectSpread({}, newPager), {}, {
|
|
76
|
-
lastReachedPage: (0, _commons.getNewReachedPage)(newPager)
|
|
77
|
-
}),
|
|
78
|
-
modalErrors: undefined
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
function reduceStartLoop(state, _ref2) {
|
|
82
|
-
var next = _ref2.next,
|
|
83
|
-
iterations = _ref2.iterations,
|
|
84
|
-
loopDependencies = _ref2.loopDependencies;
|
|
85
|
-
var pages = state.pages,
|
|
86
|
-
pager = state.pager,
|
|
87
|
-
executeExpression = state.executeExpression;
|
|
88
|
-
var subPages = pages[next].subPages;
|
|
89
|
-
if (!(0, _commons2.validateLoopConditionFilter)(state, {
|
|
90
|
-
next: next
|
|
91
|
-
})) {
|
|
92
|
-
var newPager = _objectSpread(_objectSpread({}, pager), {}, {
|
|
93
|
-
page: next,
|
|
94
|
-
subPage: undefined,
|
|
95
|
-
nbSubPages: undefined,
|
|
96
|
-
iteration: undefined,
|
|
97
|
-
nbIterations: undefined,
|
|
98
|
-
shallowIteration: undefined
|
|
99
|
-
});
|
|
100
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
101
|
-
pager: _objectSpread(_objectSpread({}, newPager), {}, {
|
|
102
|
-
lastReachedPage: (0, _commons.getNewReachedPage)(newPager)
|
|
103
|
-
})
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
var nbIterations = executeExpression((0, _commons.getCompatibleVTLExpression)(iterations));
|
|
107
|
-
if (Array.isArray(subPages)) {
|
|
108
|
-
var _newPager = _objectSpread(_objectSpread({}, pager), {}, {
|
|
109
|
-
page: next,
|
|
110
|
-
subPage: 0,
|
|
111
|
-
nbSubPages: subPages.length,
|
|
112
|
-
iteration: 0,
|
|
113
|
-
nbIterations: nbIterations,
|
|
114
|
-
shallowIteration: undefined
|
|
115
|
-
});
|
|
116
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
117
|
-
isInLoop: true,
|
|
118
|
-
pager: _objectSpread(_objectSpread({}, _newPager), {}, {
|
|
119
|
-
lastReachedPage: (0, _commons.getNewReachedPage)(_newPager)
|
|
120
|
-
})
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
return state;
|
|
124
|
-
}
|
|
125
|
-
function validateChange(state) {
|
|
126
|
-
if ((0, _commons2.isOnEmptyPage)(state)) {
|
|
127
|
-
return reduceGoNextPage(state);
|
|
128
|
-
}
|
|
129
|
-
return state;
|
|
130
|
-
}
|
|
131
20
|
function reduceGoNextPage(state) {
|
|
21
|
+
var _pages$pager$page;
|
|
132
22
|
var pages = state.pages,
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
var
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
nbIterations: 0
|
|
140
|
-
}, pager),
|
|
141
|
-
iteration = _nbSubPages$iteration.iteration,
|
|
142
|
-
nbIterations = _nbSubPages$iteration.nbIterations,
|
|
143
|
-
subPage = _nbSubPages$iteration.subPage,
|
|
144
|
-
nbSubPages = _nbSubPages$iteration.nbSubPages,
|
|
145
|
-
page = _nbSubPages$iteration.page,
|
|
146
|
-
roundabout = _nbSubPages$iteration.roundabout;
|
|
147
|
-
|
|
148
|
-
/* next iteration of loop/roundabout */
|
|
149
|
-
if (isInLoop && subPage !== undefined && subPage < nbSubPages - 1) {
|
|
150
|
-
return validateChange(reduceNextSubPage(state));
|
|
151
|
-
}
|
|
152
|
-
/* next subpage of loop/roundabout */
|
|
153
|
-
if (isInLoop && subPage === nbSubPages - 1 && iteration < nbIterations - 1) {
|
|
154
|
-
return validateChange(reduceNextIteration(state));
|
|
23
|
+
pager = state.pager;
|
|
24
|
+
var parentType = (_pages$pager$page = pages[pager.page]) === null || _pages$pager$page === void 0 ? void 0 : _pages$pager$page.components[0].componentType;
|
|
25
|
+
var nextPager = (0, _pageNavigation.getNextPager)(pager, parentType);
|
|
26
|
+
var pageId = (0, _page.getPageId)(nextPager);
|
|
27
|
+
if (!pages[pageId]) {
|
|
28
|
+
throw new Error("Cannot reach next page ".concat(pageId));
|
|
155
29
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
next: next,
|
|
172
|
-
iterations: iterations,
|
|
173
|
-
loopDependencies: loopDependencies
|
|
174
|
-
}));
|
|
175
|
-
}
|
|
176
|
-
return validateChange(reduceNextPage(state, {
|
|
177
|
-
next: next
|
|
178
|
-
}));
|
|
30
|
+
|
|
31
|
+
// If we reached a loop, go inside
|
|
32
|
+
var newState = (0, _autoExploreLoop.autoExploreLoop)(_objectSpread(_objectSpread({}, state), {}, {
|
|
33
|
+
pager: nextPager
|
|
34
|
+
}), 'forward');
|
|
35
|
+
|
|
36
|
+
// We reached an empty page, move forward
|
|
37
|
+
if ((0, _page.isPageEmpty)(newState)) {
|
|
38
|
+
return reduceGoNextPage(newState);
|
|
39
|
+
}
|
|
40
|
+
return _objectSpread(_objectSpread({}, newState), {}, {
|
|
41
|
+
pager: _objectSpread(_objectSpread({}, newState.pager), {}, {
|
|
42
|
+
lastReachedPage: (0, _commons.getNewReachedPage)(newState.pager)
|
|
43
|
+
})
|
|
44
|
+
});
|
|
179
45
|
}
|
|
180
46
|
var _default = (0, _compose["default"])(reduceGoNextPage, _overviewOnChange.overviewOnChange);
|
|
181
47
|
exports["default"] = _default;
|