@inseefr/lunatic 3.7.6 → 3.7.7-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/Suggester/Suggester.js +11 -2
- package/components/Suggester/Suggester.js.map +1 -1
- package/esm/components/Suggester/Suggester.js +12 -3
- package/esm/components/Suggester/Suggester.js.map +1 -1
- package/esm/use-lunatic/commons/page.js +53 -2
- package/esm/use-lunatic/commons/page.js.map +1 -1
- package/esm/use-lunatic/reducer/commons/auto-explore-loop.js +1 -1
- package/esm/use-lunatic/reducer/commons/auto-explore-loop.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Suggester/Suggester.tsx +16 -5
- package/src/use-lunatic/commons/page.ts +72 -3
- package/src/use-lunatic/reducer/commons/auto-explore-loop.ts +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/use-lunatic/commons/page.js +53 -2
- package/use-lunatic/commons/page.js.map +1 -1
- package/use-lunatic/reducer/commons/auto-explore-loop.js +1 -1
- package/use-lunatic/reducer/commons/auto-explore-loop.js.map +1 -1
|
@@ -18,7 +18,50 @@ function getPageId({ subPage, page, }) {
|
|
|
18
18
|
* Converts a page number (3.1.2) to an array of numbers [3, 1, 2]
|
|
19
19
|
*/
|
|
20
20
|
function pageStringToNumbers(page) {
|
|
21
|
-
return page.split('.').map((v) => parseInt(v, 10));
|
|
21
|
+
return page.split('.').map((v) => Number.parseInt(v, 10));
|
|
22
|
+
}
|
|
23
|
+
// see useLoopUtils.ts
|
|
24
|
+
function getIterationOfLoop(component, executeExpression) {
|
|
25
|
+
const min = 'lines' in component ? executeExpression(component.lines.min) : 0;
|
|
26
|
+
const iterations = 'iterations' in component
|
|
27
|
+
? executeExpression(component.iterations)
|
|
28
|
+
: 0;
|
|
29
|
+
return Math.max(min, iterations);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if component has a conditionFilter defined
|
|
33
|
+
* @param component
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
36
|
+
function hasConditionFilter(component) {
|
|
37
|
+
return 'conditionFilter' in component && !!component.conditionFilter;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if a not paginated Loop has at least one component to display
|
|
41
|
+
* @param component
|
|
42
|
+
* @param state
|
|
43
|
+
* @returns boolean indicating if the not paginated Loop is empty
|
|
44
|
+
*/
|
|
45
|
+
function hasAtLeastOneComponentVisible(component, state) {
|
|
46
|
+
if (component.componentType === 'Loop' && !component.paginatedLoop) {
|
|
47
|
+
const nbIteration = getIterationOfLoop(component, state.executeExpression);
|
|
48
|
+
for (let iterationOfLoop = 0; iterationOfLoop < nbIteration; iterationOfLoop++) {
|
|
49
|
+
for (const c of component.components) {
|
|
50
|
+
// if no conditionFilter -> component is visible
|
|
51
|
+
if (!hasConditionFilter(c))
|
|
52
|
+
return true;
|
|
53
|
+
if ((0, execute_condition_filter_1.default)(
|
|
54
|
+
// @ts-expect-error Seem to be a typescript issue since we check type with hasConditionFilter, c.conditionFilter is defined
|
|
55
|
+
c.conditionFilter, state.executeExpression, iterationOfLoop)) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// no component visible in all iterations
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
// not a Loop
|
|
64
|
+
return true;
|
|
22
65
|
}
|
|
23
66
|
/**
|
|
24
67
|
* Check if we are on an empty page
|
|
@@ -41,7 +84,15 @@ function isPageEmpty(state) {
|
|
|
41
84
|
}
|
|
42
85
|
// Use condition filter if present
|
|
43
86
|
if ('conditionFilter' in component && component.conditionFilter) {
|
|
44
|
-
|
|
87
|
+
const conditionFilterResult = (0, execute_condition_filter_1.default)(component.conditionFilter, executeExpression, iteration);
|
|
88
|
+
// early return if the result of filter is false
|
|
89
|
+
if (!conditionFilterResult)
|
|
90
|
+
return false;
|
|
91
|
+
// early return if the component is not a not Loop
|
|
92
|
+
if (component.componentType !== 'Loop')
|
|
93
|
+
return conditionFilterResult;
|
|
94
|
+
// if the conditionFilter of NOT paginated Loop is true (have to be visible), we have to check if at least one component is visible inside
|
|
95
|
+
return hasAtLeastOneComponentVisible(component, state);
|
|
45
96
|
}
|
|
46
97
|
return true;
|
|
47
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/use-lunatic/commons/page.ts"],"names":[],"mappings":";;;;;AAIA,8BAQC;AAKD,kDAEC;
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/use-lunatic/commons/page.ts"],"names":[],"mappings":";;;;;AAIA,8BAQC;AAKD,kDAEC;AAoED,kCAyCC;AA/HD,2EAAqE;AACrE,0FAAgE;AAEhE,SAAgB,SAAS,CAAC,EACzB,OAAO,EACP,IAAI,GACoD;IACxD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,sBAAsB;AACtB,SAAS,kBAAkB,CAC1B,SAAqC,EACrC,iBAA2D;IAE3D,MAAM,GAAG,GACR,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAS,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,UAAU,GACf,YAAY,IAAI,SAAS;QACxB,CAAC,CAAC,iBAAiB,CAAS,SAAS,CAAC,UAAU,CAAC;QACjD,CAAC,CAAC,CAAC,CAAC;IACN,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,SAAqC;IAChE,OAAO,iBAAiB,IAAI,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,SAAS,6BAA6B,CACrC,SAAqC,EACrC,KAA0B;IAE1B,IAAI,SAAS,CAAC,aAAa,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC3E,KACC,IAAI,eAAe,GAAG,CAAC,EACvB,eAAe,GAAG,WAAW,EAC7B,eAAe,EAAE,EAChB,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBACtC,gDAAgD;gBAChD,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACxC,IACC,IAAA,kCAAsB;gBACrB,2HAA2H;gBAC3H,CAAC,CAAC,eAAe,EACjB,KAAK,CAAC,iBAAiB,EACvB,eAAe,CACf,EACA,CAAC;oBACF,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;QACF,CAAC;QACD,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,aAAa;IACb,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAA0B;IACrD,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAA,kDAAsB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEvD,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;QACzD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACb,CAAC;QAED,kFAAkF;QAClF,IAAI,eAAe,IAAI,SAAS,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAS,SAAS,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QAED,kCAAkC;QAClC,IAAI,iBAAiB,IAAI,SAAS,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YACjE,MAAM,qBAAqB,GAAG,IAAA,kCAAsB,EACnD,SAAS,CAAC,eAAe,EACzB,iBAAiB,EACjB,SAAS,CACT,CAAC;YACF,gDAAgD;YAChD,IAAI,CAAC,qBAAqB;gBAAE,OAAO,KAAK,CAAC;YACzC,kDAAkD;YAClD,IAAI,SAAS,CAAC,aAAa,KAAK,MAAM;gBAAE,OAAO,qBAAqB,CAAC;YACrE,0IAA0I;YAC1I,OAAO,6BAA6B,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAC7C,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
|
|
@@ -29,7 +29,7 @@ function autoExploreLoop(state, direction = 'forward') {
|
|
|
29
29
|
newPager.iteration = isForward ? 0 : newPager.nbIterations - 1;
|
|
30
30
|
hasExploredLoop = true;
|
|
31
31
|
};
|
|
32
|
-
// The page is a loop
|
|
32
|
+
// The page is a paginated loop
|
|
33
33
|
if (page.isLoop && page.subPages && page.subPages.length > 0) {
|
|
34
34
|
goInsideSubpage(page.subPages, state.executeExpression(page.iterations));
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-explore-loop.js","sourceRoot":"","sources":["../../../src/use-lunatic/reducer/commons/auto-explore-loop.ts"],"names":[],"mappings":";;AAMA,0CA6EC;AAlFD,6CAAoE;AAEpE;;GAEG;AACH,SAAgB,eAAe,CAC9B,KAA0B,EAC1B,YAAoC,SAAS;IAE7C,MAAM,QAAQ,GAAG;QAChB,GAAG,KAAK,CAAC,KAAK;KACd,CAAC;IACF,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC;IAE1C,MAAM,eAAe,GAAG,CAAC,QAAkB,EAAE,WAAmB,EAAE,EAAE;QACnE,uCAAuC;QACvC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,eAAe,GAAG,IAAI,CAAC;YACvB,OAAO;QACR,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;QACnC,MAAM,YAAY,GAAG,IAAA,0BAAmB,EACvC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CACxC,CAAC;QACF,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB;QAC9D,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;QACjC,QAAQ,CAAC,YAAY,GAAG,WAAW,CAAC;QACpC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;QAC/D,eAAe,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC;IAEF
|
|
1
|
+
{"version":3,"file":"auto-explore-loop.js","sourceRoot":"","sources":["../../../src/use-lunatic/reducer/commons/auto-explore-loop.ts"],"names":[],"mappings":"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"}
|