@inseefr/lunatic 2.4.10 → 2.5.0-fast-forward
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 +8 -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/reducer/reduce-on-init.d.ts +1 -1
- 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 +475 -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 +92 -2
- 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 +21 -6
- 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 +37 -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 +51 -55
- package/lib/use-lunatic/reducer/reduce-on-init.js +8 -10
- 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 +22 -4
- package/lib/use-lunatic/use-lunatic.test.js +9 -7
- 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 -4
- 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
|
@@ -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,37 @@
|
|
|
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
|
+
newPager.iteration = isForward ? 0 : newPager.nbIterations - 1;
|
|
32
|
+
}
|
|
33
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
34
|
+
isInLoop: newPager.nbIterations !== undefined,
|
|
35
|
+
pager: newPager
|
|
36
|
+
});
|
|
37
|
+
}
|
|
@@ -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;
|
|
@@ -4,143 +4,37 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
7
|
+
var _pageNavigation = require("../commons/page-navigation");
|
|
8
|
+
var _autoExploreLoop = require("./commons/auto-explore-loop");
|
|
9
|
+
var _page = require("../commons/page");
|
|
10
10
|
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); }
|
|
11
11
|
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; }
|
|
12
12
|
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; }
|
|
13
13
|
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; }
|
|
14
14
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
15
15
|
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); }
|
|
16
|
-
function getPreviousPage(pager) {
|
|
17
|
-
var page = pager.page;
|
|
18
|
-
var p = Number.parseInt(page);
|
|
19
|
-
if (p > 1) {
|
|
20
|
-
return "".concat(parseInt(page, 10) - 1);
|
|
21
|
-
}
|
|
22
|
-
return page;
|
|
23
|
-
}
|
|
24
|
-
function goStartLoop(state, _ref) {
|
|
25
|
-
var previous = _ref.previous,
|
|
26
|
-
iterations = _ref.iterations,
|
|
27
|
-
loopDependencies = _ref.loopDependencies;
|
|
28
|
-
var pages = state.pages,
|
|
29
|
-
pager = state.pager,
|
|
30
|
-
executeExpression = state.executeExpression;
|
|
31
|
-
var subPages = pages[previous].subPages;
|
|
32
|
-
|
|
33
|
-
//TODO: check if loop components are all filtered
|
|
34
|
-
|
|
35
|
-
if (Array.isArray(subPages)) {
|
|
36
|
-
var nbIterations = executeExpression((0, _commons.getCompatibleVTLExpression)(iterations), {
|
|
37
|
-
bindingDependencies: loopDependencies
|
|
38
|
-
});
|
|
39
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
40
|
-
isInLoop: true,
|
|
41
|
-
pager: _objectSpread(_objectSpread({}, pager), {}, {
|
|
42
|
-
page: previous,
|
|
43
|
-
subPage: subPages.length - 1,
|
|
44
|
-
nbSubPages: subPages.length,
|
|
45
|
-
iteration: nbIterations - 1,
|
|
46
|
-
nbIterations: nbIterations
|
|
47
|
-
})
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
return state;
|
|
51
|
-
}
|
|
52
|
-
function goPreviousSubPage(state) {
|
|
53
|
-
var pager = state.pager;
|
|
54
|
-
var subPage = pager.subPage;
|
|
55
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
56
|
-
pager: _objectSpread(_objectSpread({}, pager), {}, {
|
|
57
|
-
subPage: subPage ? subPage - 1 : subPage
|
|
58
|
-
})
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
function goPreviousIteration(state) {
|
|
62
|
-
var pager = state.pager,
|
|
63
|
-
pages = state.pages;
|
|
64
|
-
var iteration = pager.iteration,
|
|
65
|
-
page = pager.page,
|
|
66
|
-
roundabout = pager.roundabout;
|
|
67
|
-
if (roundabout) {
|
|
68
|
-
return (0, _reduceRoundabout.reduceToRoundabout)(state);
|
|
69
|
-
}
|
|
70
|
-
var subPages = pages[page].subPages;
|
|
71
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
72
|
-
pager: _objectSpread(_objectSpread({}, pager), {}, {
|
|
73
|
-
subPage: (subPages !== null && subPages !== void 0 ? subPages : []).length - 1,
|
|
74
|
-
iteration: (iteration !== null && iteration !== void 0 ? iteration : 0) - 1
|
|
75
|
-
})
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
function goPreviousPage(state, _ref2) {
|
|
79
|
-
var previous = _ref2.previous;
|
|
80
|
-
var pager = state.pager;
|
|
81
|
-
var page = pager.page;
|
|
82
|
-
var updatedPager = _objectSpread(_objectSpread({}, pager), {}, {
|
|
83
|
-
page: previous,
|
|
84
|
-
iteration: undefined,
|
|
85
|
-
nbIterations: undefined,
|
|
86
|
-
subPage: undefined,
|
|
87
|
-
nbSubPages: undefined,
|
|
88
|
-
shallowIteration: undefined
|
|
89
|
-
});
|
|
90
|
-
if (previous !== page) {
|
|
91
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
92
|
-
isInLoop: false,
|
|
93
|
-
pager: updatedPager
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
return state;
|
|
97
|
-
}
|
|
98
|
-
function validateChange(state) {
|
|
99
|
-
var pager = state.pager;
|
|
100
|
-
var updatedState = _objectSpread({}, state);
|
|
101
|
-
if ((0, _commons2.isOnEmptyPage)(updatedState)) {
|
|
102
|
-
return reduceGoPreviousPage(updatedState);
|
|
103
|
-
}
|
|
104
|
-
return updatedState;
|
|
105
|
-
}
|
|
106
16
|
function reduceGoPreviousPage(state) {
|
|
17
|
+
var _pages$pager$page;
|
|
107
18
|
var pages = state.pages,
|
|
108
|
-
pager = state.pager
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
var
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
// dans une boucle et l'itération courante n'est pas finie
|
|
117
|
-
if (isInLoop && subPage && subPage > 0) {
|
|
118
|
-
return validateChange(goPreviousSubPage(state));
|
|
19
|
+
pager = state.pager;
|
|
20
|
+
var parentType = (_pages$pager$page = pages[pager.page]) === null || _pages$pager$page === void 0 ? void 0 : _pages$pager$page.components[0].componentType;
|
|
21
|
+
var prevPager = (0, _pageNavigation.getPrevPager)(pager, parentType);
|
|
22
|
+
var pageId = (0, _page.getPageId)(prevPager);
|
|
23
|
+
var prevPage = pages[pageId];
|
|
24
|
+
if (!prevPage) {
|
|
25
|
+
throw new Error("Cannot reach previous page ".concat(pageId));
|
|
119
26
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
isLoop = _pages$previous.isLoop,
|
|
130
|
-
iterations = _pages$previous.iterations,
|
|
131
|
-
loopDependencies = _pages$previous.loopDependencies;
|
|
132
|
-
// on rentre dans une boucle
|
|
133
|
-
if (isLoop) {
|
|
134
|
-
return validateChange(goStartLoop(state, {
|
|
135
|
-
previous: previous,
|
|
136
|
-
loopDependencies: loopDependencies,
|
|
137
|
-
iterations: iterations
|
|
138
|
-
}));
|
|
27
|
+
|
|
28
|
+
// If we reached a loop, go to the last iteration / sequence
|
|
29
|
+
var newState = (0, _autoExploreLoop.autoExploreLoop)(_objectSpread(_objectSpread({}, state), {}, {
|
|
30
|
+
pager: prevPager
|
|
31
|
+
}), 'backward');
|
|
32
|
+
|
|
33
|
+
// We reached an empty page, keep going backward
|
|
34
|
+
if ((0, _page.isPageEmpty)(newState)) {
|
|
35
|
+
return reduceGoPreviousPage(newState);
|
|
139
36
|
}
|
|
140
|
-
|
|
141
|
-
return validateChange(goPreviousPage(state, {
|
|
142
|
-
previous: previous
|
|
143
|
-
}));
|
|
37
|
+
return newState;
|
|
144
38
|
}
|
|
145
39
|
var _default = reduceGoPreviousPage;
|
|
146
40
|
exports["default"] = _default;
|