@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.
@@ -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
- return (0, execute_condition_filter_1.default)(component.conditionFilter, executeExpression, iteration);
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;AAMD,kCAkCC;AA1DD,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,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,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;IACvD,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,OAAO,IAAA,kCAAsB,EAC5B,SAAS,CAAC,eAAe,EACzB,iBAAiB,EACjB,SAAS,CACT,CAAC;QACH,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"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/use-lunatic/commons/page.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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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"}