@inseefr/lunatic 2.5.2 → 2.6.0-rc.1

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.
Files changed (432) hide show
  1. package/README.fr.md +186 -0
  2. package/README.md +111 -94
  3. package/lib/components/button/lunatic-button.js +10 -13
  4. package/lib/components/checkbox/checkbox-group/html/checkbox-group.js +0 -1
  5. package/lib/components/commons/components/combo-box/combo-box-content.js +1 -1
  6. package/lib/components/commons/components/combo-box/combo-box.js +93 -66
  7. package/lib/components/commons/components/combo-box/combo-box.stories.js +69 -8
  8. package/lib/components/commons/components/combo-box/panel/panel.js +0 -1
  9. package/lib/components/commons/components/combo-box/selection/LabelOrInput.js +4 -1
  10. package/lib/components/commons/components/combo-box/selection/LabelOrInput.spec.js +2 -4
  11. package/lib/components/commons/components/combo-box/selection/combo-box-label-selection.js +5 -2
  12. package/lib/components/commons/components/combo-box/selection/label-selection.js +4 -2
  13. package/lib/components/commons/components/combo-box/selection/selection.js +2 -0
  14. package/lib/components/commons/components/fab/fab.js +0 -1
  15. package/lib/components/commons/components/fieldset.js +0 -1
  16. package/lib/components/commons/components/lunatic-component-with-label.js +1 -3
  17. package/lib/components/commons/components/md-label/md-label.js +5 -1
  18. package/lib/components/commons/components/md-label/md-label.spec.js +15 -0
  19. package/lib/components/commons/components/missing/missing.js +1 -3
  20. package/lib/components/commons/components/variable-status/variable-status.js +2 -3
  21. package/lib/components/commons/create-customizable-field.js +1 -0
  22. package/lib/components/commons/icons/closed-icon.js +0 -2
  23. package/lib/components/commons/icons/cross-icon.js +0 -2
  24. package/lib/components/commons/index.js +0 -7
  25. package/lib/components/component-set/html/__snapshots__/component-set.spec.tsx.snap +124 -0
  26. package/lib/components/component-set/html/{legend/legend.js → component-set-legend.js} +4 -6
  27. package/lib/components/component-set/html/component-set-wrapper.js +16 -0
  28. package/lib/components/component-set/html/component-set.js +7 -8
  29. package/lib/components/component-set/html/component-set.spec.js +91 -0
  30. package/lib/components/component-set/lunatic-component-set.js +19 -9
  31. package/lib/components/datepicker/html/__snapshots__/datepicker.spec.tsx.snap +34 -0
  32. package/lib/components/datepicker/html/datepicker-input.js +0 -1
  33. package/lib/components/datepicker/html/datepicker.js +1 -4
  34. package/lib/components/datepicker/html/datepicker.spec.js +38 -0
  35. package/lib/components/datepicker/lunatic-datepicker.js +0 -1
  36. package/lib/components/dropdown/html/__snapshots__/dropdown.spec.tsx.snap +85 -0
  37. package/lib/components/dropdown/html/dropdown-simple/dropdown-simple.js +3 -2
  38. package/lib/components/dropdown/html/dropdown-simple/simple-label-renderer.js +0 -2
  39. package/lib/components/dropdown/html/dropdown-writable/dropdown-writable.js +4 -5
  40. package/lib/components/dropdown/html/dropdown-writable/writable-label-renderer.js +1 -4
  41. package/lib/components/dropdown/html/dropdown-writable/writable-option-renderer.js +1 -3
  42. package/lib/components/dropdown/html/dropdown.js +4 -2
  43. package/lib/components/dropdown/html/dropdown.spec.js +48 -0
  44. package/lib/components/dropdown/lunatic-dropdown.js +5 -4
  45. package/lib/components/duration/getDurationFromValue.js +0 -1
  46. package/lib/components/filter-description/component.js +0 -2
  47. package/lib/components/index.js +6 -5
  48. package/lib/components/input/html/__snapshots__/input.spec.tsx.snap +34 -0
  49. package/lib/components/input/html/input.js +4 -5
  50. package/lib/components/input/html/input.spec.js +81 -0
  51. package/lib/components/input/lunatic-input.js +4 -2
  52. package/lib/components/input-number/html/__snapshots__/input-number.spec.tsx.snap +38 -90
  53. package/lib/components/input-number/html/input-number-thousand.js +2 -0
  54. package/lib/components/input-number/html/input-number.js +3 -0
  55. package/lib/components/input-number/html/input-number.spec.js +35 -19
  56. package/lib/components/input-number/lunatic-input-number.js +2 -1
  57. package/lib/components/loop/{block-for-loop/block-for-loop.js → block-for-loop.js} +39 -64
  58. package/lib/components/loop/{commons/handle-row-button.js → loop-button.js} +4 -7
  59. package/lib/components/loop/{roster-for-loop/header.js → loop-header.js} +4 -8
  60. package/lib/components/loop/loop.js +19 -65
  61. package/lib/components/loop/roster-for-loop/roster-for-loop.js +102 -83
  62. package/lib/components/loop/{commons/get-init-length.js → utils/get-initial-nb-rows.js} +6 -5
  63. package/lib/components/{loop/roster-for-loop/body.js → lunatic-components.js} +46 -37
  64. package/lib/components/modal/html/modal.js +45 -73
  65. package/lib/components/modal/html/modal.scss +25 -42
  66. package/lib/components/modal/lunatic-modal.js +33 -9
  67. package/lib/components/modal-controls/close-or-skip.js +0 -1
  68. package/lib/components/modal-controls/modal-controls.spec.js +5 -6
  69. package/lib/components/pairwise-links/orchestrator.js +1 -4
  70. package/lib/components/pairwise-links/row.js +1 -4
  71. package/lib/components/question-explication/html/question-explication.js +0 -1
  72. package/lib/components/radio/html/radio-group-content.js +4 -3
  73. package/lib/components/radio/html/radio-group.js +4 -2
  74. package/lib/components/radio/html/radio-option.js +7 -8
  75. package/lib/components/radio/lunatic-radio-group.js +4 -2
  76. package/lib/components/roundabout/components/roundabout-it-title.js +0 -2
  77. package/lib/components/roundabout/components/roundabout-label.js +0 -2
  78. package/lib/components/roundabout/lunatic-roundabout.js +1 -4
  79. package/lib/components/roundabout/roundabout.js +0 -1
  80. package/lib/components/suggester/html/notification.js +0 -1
  81. package/lib/components/suggester/html/suggester.js +3 -3
  82. package/lib/components/suggester/idb-suggester/check-store.js +3 -5
  83. package/lib/components/suggester/idb-suggester/idb-suggester.js +4 -5
  84. package/lib/components/suggester/idb-suggester/suggester-notification.js +2 -2
  85. package/lib/components/suggester/lunatic-suggester.js +3 -1
  86. package/lib/components/suggester-loader-widget/loader-row.js +1 -4
  87. package/lib/components/suggester-loader-widget/loader.js +1 -3
  88. package/lib/components/summary/html/summary-responses.js +13 -7
  89. package/lib/components/summary/lunatic-summary.js +8 -4
  90. package/lib/components/switch/html/switch.js +0 -1
  91. package/lib/components/table/cell.js +0 -2
  92. package/lib/components/table/header.js +0 -2
  93. package/lib/components/table/row.js +0 -1
  94. package/lib/components/textarea/html/__snapshots__/textarea.spec.tsx.snap +30 -0
  95. package/lib/components/textarea/html/textarea.js +5 -6
  96. package/lib/components/textarea/html/textarea.spec.js +38 -0
  97. package/lib/components/textarea/lunatic-textarea.js +4 -2
  98. package/lib/index.js +8 -0
  99. package/lib/src/components/button/lunatic-button.d.ts +5 -3
  100. package/lib/src/components/checkbox/checkbox-boolean/html/checkbox-boolean.d.ts +2 -2
  101. package/lib/src/components/checkbox/checkbox-boolean/lunatic-checkbox-boolean.d.ts +1 -1
  102. package/lib/src/components/checkbox/checkbox-group/checkbox-group-content.d.ts +1 -1
  103. package/lib/src/components/checkbox/checkbox-group/html/checkbox-group-content.d.ts +1 -1
  104. package/lib/src/components/checkbox/checkbox-group/html/checkbox-group.d.ts +4 -4
  105. package/lib/src/components/checkbox/checkbox-group/lunatic-checkbox-group.d.ts +2 -2
  106. package/lib/src/components/checkbox/checkbox-one/html/checkbox-one.d.ts +1 -1
  107. package/lib/src/components/checkbox/checkbox-one/lunatic-checkbox-one.d.ts +1 -1
  108. package/lib/src/components/checkbox/commons/checkbox-option.d.ts +2 -2
  109. package/lib/src/components/commons/components/combo-box/combo-box-container.d.ts +1 -1
  110. package/lib/src/components/commons/components/combo-box/combo-box-content-box.d.ts +1 -1
  111. package/lib/src/components/commons/components/combo-box/combo-box-content.d.ts +1 -1
  112. package/lib/src/components/commons/components/combo-box/combo-box.d.ts +6 -5
  113. package/lib/src/components/commons/components/combo-box/combo-box.stories.d.ts +30 -2
  114. package/lib/src/components/commons/components/combo-box/combo-box.type.d.ts +1 -1
  115. package/lib/src/components/commons/components/combo-box/panel/combo-box-option.d.ts +1 -1
  116. package/lib/src/components/commons/components/combo-box/panel/panel-container.d.ts +1 -1
  117. package/lib/src/components/commons/components/combo-box/panel/panel.d.ts +2 -2
  118. package/lib/src/components/commons/components/combo-box/selection/LabelOrInput.d.ts +3 -2
  119. package/lib/src/components/commons/components/combo-box/selection/combo-box-label-selection.d.ts +2 -1
  120. package/lib/src/components/commons/components/combo-box/selection/input.d.ts +1 -1
  121. package/lib/src/components/commons/components/combo-box/selection/label-selection.d.ts +4 -3
  122. package/lib/src/components/commons/components/combo-box/selection/selection-container.d.ts +1 -1
  123. package/lib/src/components/commons/components/combo-box/selection/selection.d.ts +3 -2
  124. package/lib/src/components/commons/components/description.d.ts +1 -1
  125. package/lib/src/components/commons/components/dragger/dragger.d.ts +1 -1
  126. package/lib/src/components/commons/components/errors/errors.d.ts +1 -1
  127. package/lib/src/components/commons/components/fab/fab.d.ts +1 -1
  128. package/lib/src/components/commons/components/field-container/field-container.d.ts +1 -1
  129. package/lib/src/components/commons/components/fieldset.d.ts +3 -3
  130. package/lib/src/components/commons/components/html-table/table.d.ts +1 -1
  131. package/lib/src/components/commons/components/html-table/thead.d.ts +1 -1
  132. package/lib/src/components/commons/components/label/label.d.ts +1 -1
  133. package/lib/src/components/commons/components/lunatic-component-with-label.d.ts +2 -2
  134. package/lib/src/components/commons/components/lunatic-component-without-label.d.ts +2 -2
  135. package/lib/src/components/commons/components/md-label/link.d.ts +1 -1
  136. package/lib/src/components/commons/components/md-label/md-label.spec.d.ts +1 -0
  137. package/lib/src/components/commons/components/missing/missing.d.ts +1 -1
  138. package/lib/src/components/commons/components/orchestrated-component.d.ts +2 -2
  139. package/lib/src/components/commons/components/variable-status/variable-status.d.ts +1 -1
  140. package/lib/src/components/commons/create-customizable-field.d.ts +1 -1
  141. package/lib/src/components/commons/icons/checkbox-checked-icon.d.ts +1 -1
  142. package/lib/src/components/commons/icons/checkbox-unchecked-icon.d.ts +1 -1
  143. package/lib/src/components/commons/icons/closed-icon.d.ts +1 -1
  144. package/lib/src/components/commons/icons/cross-icon.d.ts +1 -1
  145. package/lib/src/components/commons/icons/load-icon.d.ts +1 -1
  146. package/lib/src/components/commons/icons/lunatic-icon.d.ts +1 -1
  147. package/lib/src/components/commons/icons/network-icon.d.ts +1 -1
  148. package/lib/src/components/commons/icons/on-drag-icon.d.ts +1 -1
  149. package/lib/src/components/commons/icons/opened-icon.d.ts +1 -1
  150. package/lib/src/components/commons/icons/radio-checked-icon.d.ts +1 -1
  151. package/lib/src/components/commons/icons/radio-unchecked-icon.d.ts +1 -1
  152. package/lib/src/components/commons/index.d.ts +0 -1
  153. package/lib/src/components/commons/safety-label.d.ts +1 -1
  154. package/lib/src/components/component-set/html/component-set-legend.d.ts +8 -0
  155. package/lib/src/components/component-set/html/component-set-wrapper.d.ts +6 -0
  156. package/lib/src/components/component-set/html/component-set.d.ts +5 -4
  157. package/lib/src/components/component-set/html/component-set.spec.d.ts +1 -0
  158. package/lib/src/components/component-set/lunatic-component-set.d.ts +3 -4
  159. package/lib/src/components/datepicker/html/datepicker-container.d.ts +1 -1
  160. package/lib/src/components/datepicker/html/datepicker-input.d.ts +1 -1
  161. package/lib/src/components/datepicker/html/datepicker.d.ts +3 -3
  162. package/lib/src/components/datepicker/html/datepicker.spec.d.ts +1 -0
  163. package/lib/src/components/datepicker/lunatic-datepicker.d.ts +2 -2
  164. package/lib/src/components/declarations/declaration.d.ts +1 -1
  165. package/lib/src/components/declarations/declarations-after-text.d.ts +1 -1
  166. package/lib/src/components/declarations/declarations-before-text.d.ts +1 -1
  167. package/lib/src/components/declarations/declarations-detachable.d.ts +1 -1
  168. package/lib/src/components/declarations/declarations.d.ts +1 -1
  169. package/lib/src/components/dropdown/html/dropdown-simple/dropdown-simple.d.ts +2 -2
  170. package/lib/src/components/dropdown/html/dropdown-simple/simple-label-renderer.d.ts +1 -1
  171. package/lib/src/components/dropdown/html/dropdown-simple/simple-option-renderer.d.ts +1 -1
  172. package/lib/src/components/dropdown/html/dropdown-writable/dropdown-writable.d.ts +5 -4
  173. package/lib/src/components/dropdown/html/dropdown-writable/writable-label-renderer.d.ts +1 -1
  174. package/lib/src/components/dropdown/html/dropdown-writable/writable-option-renderer.d.ts +1 -1
  175. package/lib/src/components/dropdown/html/dropdown.d.ts +4 -3
  176. package/lib/src/components/dropdown/html/dropdown.spec.d.ts +1 -0
  177. package/lib/src/components/dropdown/lunatic-dropdown.d.ts +2 -2
  178. package/lib/src/components/duration/duration.d.ts +1 -1
  179. package/lib/src/components/duration/durationInput.d.ts +1 -1
  180. package/lib/src/components/duration/formatDuration.d.ts +1 -1
  181. package/lib/src/components/duration/getDurationFromValue.d.ts +1 -1
  182. package/lib/src/components/duration/index.d.ts +1 -1
  183. package/lib/src/components/filter-description/component.d.ts +2 -2
  184. package/lib/src/components/index.d.ts +4 -4
  185. package/lib/src/components/input/html/input.d.ts +4 -3
  186. package/lib/src/components/input/html/input.spec.d.ts +1 -0
  187. package/lib/src/components/input/lunatic-input.d.ts +1 -1
  188. package/lib/src/components/input-number/html/input-number-thousand.d.ts +2 -1
  189. package/lib/src/components/input-number/html/input-number.d.ts +3 -2
  190. package/lib/src/components/input-number/lunatic-input-number.d.ts +1 -1
  191. package/lib/src/components/loop/{block-for-loop/block-for-loop.d.ts → block-for-loop.d.ts} +6 -4
  192. package/lib/src/components/loop/loop-button.d.ts +7 -0
  193. package/lib/src/components/loop/loop-header.d.ts +9 -0
  194. package/lib/src/components/loop/loop.d.ts +2 -3
  195. package/lib/src/components/loop/roster-for-loop/roster-for-loop.d.ts +7 -5
  196. package/lib/src/components/loop/utils/get-initial-nb-rows.d.ts +4 -0
  197. package/lib/src/components/lunatic-components.d.ts +13 -0
  198. package/lib/src/components/modal/html/modal.d.ts +10 -13
  199. package/lib/src/components/modal/lunatic-modal.d.ts +2 -2
  200. package/lib/src/components/modal-controls/close-or-skip.d.ts +1 -1
  201. package/lib/src/components/modal-controls/modal-container.d.ts +1 -1
  202. package/lib/src/components/modal-controls/modal-controls.d.ts +2 -2
  203. package/lib/src/components/pairwise-links/orchestrator.d.ts +1 -1
  204. package/lib/src/components/pairwise-links/pairwise-links.d.ts +1 -1
  205. package/lib/src/components/pairwise-links/row.d.ts +1 -1
  206. package/lib/src/components/question-explication/html/question-explication.d.ts +1 -1
  207. package/lib/src/components/question-explication/lunatic-question-explication.d.ts +1 -1
  208. package/lib/src/components/radio/html/radio-group-content.d.ts +3 -2
  209. package/lib/src/components/radio/html/radio-group.d.ts +3 -2
  210. package/lib/src/components/radio/html/radio-option.d.ts +3 -2
  211. package/lib/src/components/roundabout/components/roundabout-it-title.d.ts +3 -3
  212. package/lib/src/components/roundabout/components/roundabout-label.d.ts +3 -3
  213. package/lib/src/components/roundabout/lunatic-roundabout.d.ts +1 -1
  214. package/lib/src/components/roundabout/roundabout.d.ts +2 -2
  215. package/lib/src/components/sequence/html/sequence.d.ts +1 -1
  216. package/lib/src/components/sequence/lunatic-sequence.d.ts +2 -2
  217. package/lib/src/components/suggester/html/notification.d.ts +2 -2
  218. package/lib/src/components/suggester/html/suggester.d.ts +6 -5
  219. package/lib/src/components/suggester/idb-suggester/check-store.d.ts +1 -1
  220. package/lib/src/components/suggester/idb-suggester/idb-suggester.d.ts +3 -3
  221. package/lib/src/components/suggester/idb-suggester/suggester-notification.d.ts +1 -1
  222. package/lib/src/components/suggester/idb-suggester/suggester-status.d.ts +1 -1
  223. package/lib/src/components/suggester/lunatic-suggester.d.ts +2 -2
  224. package/lib/src/components/suggester/searching/create-searching.d.ts +1 -1
  225. package/lib/src/components/suggester-loader-widget/loader-row.d.ts +1 -1
  226. package/lib/src/components/suggester-loader-widget/loader.d.ts +1 -1
  227. package/lib/src/components/suggester-loader-widget/tools/action-tool.d.ts +1 -1
  228. package/lib/src/components/suggester-loader-widget/tools/tools.d.ts +1 -1
  229. package/lib/src/components/suggester-loader-widget/widget.d.ts +1 -1
  230. package/lib/src/components/summary/html/summary-container.d.ts +1 -1
  231. package/lib/src/components/summary/html/summary-responses.d.ts +3 -1
  232. package/lib/src/components/summary/html/summary-title.d.ts +1 -1
  233. package/lib/src/components/summary/lunatic-summary.d.ts +3 -2
  234. package/lib/src/components/switch/html/switch.d.ts +3 -3
  235. package/lib/src/components/switch/lunatic-switch.d.ts +1 -1
  236. package/lib/src/components/table/cell.d.ts +1 -1
  237. package/lib/src/components/table/header.d.ts +1 -1
  238. package/lib/src/components/table/lunatic-table.d.ts +1 -1
  239. package/lib/src/components/table/row.d.ts +1 -1
  240. package/lib/src/components/table/table-orchestrator.d.ts +1 -1
  241. package/lib/src/components/textarea/html/textarea.d.ts +4 -3
  242. package/lib/src/components/textarea/html/textarea.spec.d.ts +1 -0
  243. package/lib/src/components/textarea/lunatic-textarea.d.ts +1 -1
  244. package/lib/src/components/type.d.ts +9 -6
  245. package/lib/src/i18n/build-dictionary.d.ts +1 -1
  246. package/lib/src/index.d.ts +1 -0
  247. package/lib/src/use-lunatic/actions.d.ts +4 -8
  248. package/lib/src/use-lunatic/commons/calculated-variables.d.ts +1 -1
  249. package/lib/src/use-lunatic/commons/check-loops.d.ts +1 -1
  250. package/lib/src/use-lunatic/commons/check-pager.d.ts +1 -1
  251. package/lib/src/use-lunatic/commons/compile-controls.d.ts +1 -1
  252. package/lib/src/use-lunatic/commons/compose.d.ts +1 -1
  253. package/lib/src/use-lunatic/commons/create-map-pages.d.ts +2 -2
  254. package/lib/src/use-lunatic/commons/execute-condition-filter.d.ts +1 -1
  255. package/lib/src/use-lunatic/commons/execute-expression/create-execute-expression.d.ts +1 -1
  256. package/lib/src/use-lunatic/commons/execute-expression/create-refresh-calculated.d.ts +2 -2
  257. package/lib/src/use-lunatic/commons/execute-expression/execute-expression.d.ts +3 -3
  258. package/lib/src/use-lunatic/commons/execute-expression/get-safety-expression.d.ts +1 -1
  259. package/lib/src/use-lunatic/commons/fill-components/fill-component-expressions.d.ts +5 -2
  260. package/lib/src/use-lunatic/commons/fill-components/fill-component-value.d.ts +1 -1
  261. package/lib/src/use-lunatic/commons/fill-components/fill-components.d.ts +15 -10
  262. package/lib/src/use-lunatic/commons/fill-components/fill-from-state.d.ts +38 -1
  263. package/lib/src/use-lunatic/commons/fill-components/fill-management.d.ts +1 -1
  264. package/lib/src/use-lunatic/commons/fill-components/fill-missing-response.d.ts +1 -1
  265. package/lib/src/use-lunatic/commons/fill-components/fill-pagination.d.ts +1 -1
  266. package/lib/src/use-lunatic/commons/fill-components/fill-specific-expression.d.ts +62 -33
  267. package/lib/src/use-lunatic/commons/get-compatible-vtl-expression.d.ts +1 -1
  268. package/lib/src/use-lunatic/commons/get-component-value/get-component-value.d.ts +1 -1
  269. package/lib/src/use-lunatic/commons/get-components-from-state.d.ts +1 -2
  270. package/lib/src/use-lunatic/commons/get-data.d.ts +1 -1
  271. package/lib/src/use-lunatic/commons/get-errors-without-empty-value.d.ts +1 -1
  272. package/lib/src/use-lunatic/commons/getOverview.d.ts +1 -1
  273. package/lib/src/use-lunatic/commons/is-First-last-page.d.ts +1 -1
  274. package/lib/src/use-lunatic/commons/is-paginated-loop.d.ts +1 -1
  275. package/lib/src/use-lunatic/commons/is-roundabout.d.ts +1 -1
  276. package/lib/src/use-lunatic/commons/page-navigation.d.ts +2 -2
  277. package/lib/src/use-lunatic/commons/page-tag.d.ts +1 -1
  278. package/lib/src/use-lunatic/commons/page.d.ts +2 -2
  279. package/lib/src/use-lunatic/commons/use-components-from-state.d.ts +2 -2
  280. package/lib/src/use-lunatic/hooks/use-loop-variables.d.ts +1 -1
  281. package/lib/src/use-lunatic/lunatic-context.d.ts +1 -1
  282. package/lib/src/use-lunatic/reducer/commons/auto-explore-loop.d.ts +1 -1
  283. package/lib/src/use-lunatic/reducer/commons/is-loop-component.d.ts +3 -3
  284. package/lib/src/use-lunatic/reducer/commons/validate-condition-filter.d.ts +1 -1
  285. package/lib/src/use-lunatic/reducer/overview/overview-on-change.d.ts +1 -1
  286. package/lib/src/use-lunatic/reducer/overview/overview-on-init.d.ts +2 -2
  287. package/lib/src/use-lunatic/reducer/reduce-go-next-page.d.ts +2 -4
  288. package/lib/src/use-lunatic/reducer/reduce-go-next-page.spec.d.ts +1 -0
  289. package/lib/src/use-lunatic/reducer/reduce-go-previous-page.d.ts +1 -1
  290. package/lib/src/use-lunatic/reducer/reduce-go-previous-page.spec.d.ts +1 -0
  291. package/lib/src/use-lunatic/reducer/reduce-go-to-page.d.ts +2 -2
  292. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.d.ts +2 -2
  293. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-handle-change.d.ts +2 -2
  294. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-links-variable.d.ts +2 -2
  295. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-missing.d.ts +2 -2
  296. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-resizing.d.ts +2 -2
  297. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-variables-array.d.ts +1 -1
  298. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-variables-simple.d.ts +1 -1
  299. package/lib/src/use-lunatic/reducer/reduce-on-init.d.ts +2 -2
  300. package/lib/src/use-lunatic/reducer/reduce-on-set-waiting.d.ts +2 -2
  301. package/lib/src/use-lunatic/reducer/reduce-update-state.d.ts +2 -2
  302. package/lib/src/use-lunatic/reducer/reducer.d.ts +2 -2
  303. package/lib/src/use-lunatic/reducer/resolve-component-controls/resolve-component-control.d.ts +2 -2
  304. package/lib/src/use-lunatic/reducer/resolve-component-controls/resolve-roundabout-control.d.ts +2 -2
  305. package/lib/src/use-lunatic/reducer/resolve-component-controls/resolve-simple-control.d.ts +2 -2
  306. package/lib/src/use-lunatic/replace-component-sequence.d.ts +3 -1
  307. package/lib/src/use-lunatic/type-source.d.ts +3 -1
  308. package/lib/src/use-lunatic/type.d.ts +3 -3
  309. package/lib/src/use-lunatic/use-lunatic.d.ts +21 -15
  310. package/lib/src/use-lunatic/use-suggesters.d.ts +1 -1
  311. package/lib/src/utils/array.d.ts +8 -0
  312. package/lib/src/utils/dom.d.ts +14 -0
  313. package/lib/src/utils/is-element.d.ts +1 -1
  314. package/lib/src/utils/number.d.ts +5 -0
  315. package/lib/src/utils/number.spec.d.ts +1 -0
  316. package/lib/src/utils/store-tools/initStore.d.ts +1 -1
  317. package/lib/src/utils/suggester-workers/append-to-index/create-append-task.d.ts +1 -1
  318. package/lib/src/utils/suggester-workers/searching/compute-score.d.ts +1 -1
  319. package/lib/stories/checkbox-one/source.json +2 -2
  320. package/lib/stories/component-set/component-set.stories.js +9 -9
  321. package/lib/stories/component-set/{data2.json → data-roundabout.json} +1 -1
  322. package/lib/stories/component-set/data.json +8 -1
  323. package/lib/stories/component-set/source-loop.json +308 -0
  324. package/lib/stories/component-set/source-roundabout.json +434 -0
  325. package/lib/stories/component-set/source.json +16 -2
  326. package/lib/stories/disabled/data.json +32 -0
  327. package/lib/{components/commons/components/combo-box/state-management/reduce-on-keydown/on-end.js → stories/disabled/disabled.stories.js} +25 -12
  328. package/lib/stories/disabled/source.json +382 -0
  329. package/lib/stories/input/source-with-question.json +9 -3
  330. package/lib/stories/input/source.json +6 -0
  331. package/lib/stories/loop/source-paginated.json +2 -2
  332. package/lib/stories/overview/source.json +1 -1
  333. package/lib/stories/overview/sourceWithHierarchy.json +10 -2
  334. package/lib/stories/pairwise/links-componentset.json +292 -0
  335. package/lib/stories/pairwise/pairwise-links.stories.js +11 -2
  336. package/lib/stories/question-explication/source.json +16 -16
  337. package/lib/stories/questionnaires/logement/source-sum.json +31805 -34611
  338. package/lib/stories/questionnaires/recensement/source.json +2 -2
  339. package/lib/stories/questionnaires/simpsons/simpsons.stories.js +4 -4
  340. package/lib/stories/questionnaires-test/V2_DeclarationsSimples.json +963 -847
  341. package/lib/stories/questionnaires-test/V2_QuestSimple_Boucles.json +4350 -4090
  342. package/lib/stories/suggester/simple.json +4 -0
  343. package/lib/stories/summary/source.json +55 -40
  344. package/lib/stories/utils/orchestrator.js +11 -22
  345. package/lib/tests/utils/lunatic.d.ts +16 -2
  346. package/lib/use-lunatic/commons/execute-expression/create-execute-expression.js +13 -45
  347. package/lib/use-lunatic/commons/execute-expression/execute-expression.js +0 -1
  348. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js +5 -1
  349. package/lib/use-lunatic/commons/fill-components/fill-components.js +10 -2
  350. package/lib/use-lunatic/commons/fill-components/fill-from-state.js +3 -0
  351. package/lib/use-lunatic/commons/fill-components/fill-specific-expression.js +66 -21
  352. package/lib/use-lunatic/commons/get-component-value/get-component-value.js +1 -3
  353. package/lib/use-lunatic/commons/page.js +6 -0
  354. package/lib/use-lunatic/hooks/use-loop-variables.js +1 -1
  355. package/lib/use-lunatic/reducer/reduce-go-next-page.js +10 -10
  356. package/lib/use-lunatic/reducer/reduce-go-next-page.spec.js +13 -0
  357. package/lib/use-lunatic/reducer/reduce-go-previous-page.js +3 -3
  358. package/lib/use-lunatic/reducer/reduce-go-previous-page.spec.js +14 -0
  359. package/lib/use-lunatic/reducer/reduce-go-to-page.js +3 -8
  360. package/lib/use-lunatic/reducer/reduce-handle-change/__mocks__/source-cleaning-loop.json +790 -924
  361. package/lib/use-lunatic/reducer/reducer.js +2 -2
  362. package/lib/use-lunatic/use-lunatic.js +5 -2
  363. package/lib/use-lunatic/use-lunatic.test.js +26 -0
  364. package/lib/utils/array.js +33 -0
  365. package/lib/utils/dom.js +27 -0
  366. package/lib/utils/number.js +30 -0
  367. package/lib/utils/number.spec.js +11 -0
  368. package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.spec.js +0 -2
  369. package/package.json +8 -3
  370. package/lib/components/commons/components/combo-box/state-management/actions.js +0 -79
  371. package/lib/components/commons/components/combo-box/state-management/index.js +0 -25
  372. package/lib/components/commons/components/combo-box/state-management/reduce-on-init.js +0 -38
  373. package/lib/components/commons/components/combo-box/state-management/reduce-on-keydown/on-arrow-down.js +0 -30
  374. package/lib/components/commons/components/combo-box/state-management/reduce-on-keydown/on-arrow-up.js +0 -30
  375. package/lib/components/commons/components/combo-box/state-management/reduce-on-keydown/on-enter.js +0 -19
  376. package/lib/components/commons/components/combo-box/state-management/reduce-on-keydown/on-escape.js +0 -18
  377. package/lib/components/commons/components/combo-box/state-management/reduce-on-keydown/on-home.js +0 -23
  378. package/lib/components/commons/components/combo-box/state-management/reduce-on-keydown/on-tab.js +0 -18
  379. package/lib/components/commons/components/combo-box/state-management/reduce-on-keydown/reduce-on-keydown.js +0 -40
  380. package/lib/components/commons/components/combo-box/state-management/reducer.js +0 -53
  381. package/lib/components/commons/create-row-orchestrator.js +0 -58
  382. package/lib/components/component-set/html/component-set-component-container.js +0 -20
  383. package/lib/components/component-set/html/component-set-components.js +0 -45
  384. package/lib/components/component-set/html/legend/index.js +0 -13
  385. package/lib/components/component-set/index.js +0 -13
  386. package/lib/components/loop/block-for-loop/block-for-loop-ochestrator.js +0 -12
  387. package/lib/components/loop/block-for-loop/index.js +0 -13
  388. package/lib/components/loop/block-for-loop/row.js +0 -56
  389. package/lib/components/loop/commons/index.js +0 -20
  390. package/lib/components/loop/commons/row-component.js +0 -72
  391. package/lib/components/loop/index.js +0 -13
  392. package/lib/components/loop/roster-for-loop/index.js +0 -13
  393. package/lib/components/loop/roster-for-loop/roster-for-loop-orchestrator.js +0 -12
  394. package/lib/components/loop/roster-for-loop/roster-table.js +0 -50
  395. package/lib/components/loop/roster-for-loop/row.js +0 -85
  396. package/lib/src/components/commons/components/combo-box/state-management/actions.d.ts +0 -78
  397. package/lib/src/components/commons/components/combo-box/state-management/index.d.ts +0 -9
  398. package/lib/src/components/commons/components/combo-box/state-management/reduce-on-init.d.ts +0 -4
  399. package/lib/src/components/commons/components/combo-box/state-management/reduce-on-keydown/on-arrow-down.d.ts +0 -2
  400. package/lib/src/components/commons/components/combo-box/state-management/reduce-on-keydown/on-arrow-up.d.ts +0 -2
  401. package/lib/src/components/commons/components/combo-box/state-management/reduce-on-keydown/on-end.d.ts +0 -2
  402. package/lib/src/components/commons/components/combo-box/state-management/reduce-on-keydown/on-enter.d.ts +0 -2
  403. package/lib/src/components/commons/components/combo-box/state-management/reduce-on-keydown/on-escape.d.ts +0 -2
  404. package/lib/src/components/commons/components/combo-box/state-management/reduce-on-keydown/on-home.d.ts +0 -2
  405. package/lib/src/components/commons/components/combo-box/state-management/reduce-on-keydown/on-tab.d.ts +0 -2
  406. package/lib/src/components/commons/components/combo-box/state-management/reduce-on-keydown/reduce-on-keydown.d.ts +0 -9
  407. package/lib/src/components/commons/components/combo-box/state-management/reducer.d.ts +0 -3
  408. package/lib/src/components/commons/create-row-orchestrator.d.ts +0 -32
  409. package/lib/src/components/component-set/html/component-set-component-container.d.ts +0 -6
  410. package/lib/src/components/component-set/html/component-set-components.d.ts +0 -7
  411. package/lib/src/components/component-set/html/legend/index.d.ts +0 -1
  412. package/lib/src/components/component-set/html/legend/legend.d.ts +0 -8
  413. package/lib/src/components/component-set/index.d.ts +0 -1
  414. package/lib/src/components/loop/block-for-loop/block-for-loop-ochestrator.d.ts +0 -51
  415. package/lib/src/components/loop/block-for-loop/index.d.ts +0 -1
  416. package/lib/src/components/loop/block-for-loop/row.d.ts +0 -23
  417. package/lib/src/components/loop/commons/get-init-length.d.ts +0 -2
  418. package/lib/src/components/loop/commons/handle-row-button.d.ts +0 -7
  419. package/lib/src/components/loop/commons/index.d.ts +0 -2
  420. package/lib/src/components/loop/commons/row-component.d.ts +0 -9
  421. package/lib/src/components/loop/index.d.ts +0 -1
  422. package/lib/src/components/loop/roster-for-loop/body.d.ts +0 -12
  423. package/lib/src/components/loop/roster-for-loop/header.d.ts +0 -9
  424. package/lib/src/components/loop/roster-for-loop/index.d.ts +0 -1
  425. package/lib/src/components/loop/roster-for-loop/roster-for-loop-orchestrator.d.ts +0 -51
  426. package/lib/src/components/loop/roster-for-loop/roster-table.d.ts +0 -13
  427. package/lib/src/components/loop/roster-for-loop/row.d.ts +0 -24
  428. package/lib/stories/component-set/source1.json +0 -287
  429. package/lib/stories/component-set/source2.json +0 -413
  430. /package/lib/components/commons/components/combo-box/{state-management/reduce-on-keydown/keyboard-key-codes.js → keyboard-key-codes.js} +0 -0
  431. /package/lib/src/components/commons/components/combo-box/{state-management/reduce-on-keydown/keyboard-key-codes.d.ts → keyboard-key-codes.d.ts} +0 -0
  432. /package/lib/stories/component-set/{data1.json → data-loop.json} +0 -0
@@ -46,6 +46,10 @@
46
46
  "value": "true",
47
47
  "type": "VTL"
48
48
  },
49
+ "readOnly": {
50
+ "value": "true",
51
+ "type": "VTL"
52
+ },
49
53
  "controls": [
50
54
  {
51
55
  "id": "age-controls",
@@ -26,7 +26,7 @@
26
26
  "conditionFilter": { "value": "true", "type": "VTL" },
27
27
  "response": { "name": "NB_HAB" }
28
28
  },
29
- {
29
+ {
30
30
  "id": "hoew",
31
31
  "componentType": "InputNumber",
32
32
  "mandatory": false,
@@ -216,44 +216,59 @@
216
216
  "value": "\"## Vos réponses.\"",
217
217
  "type": "VTL|MD"
218
218
  },
219
- "sections": [
220
- {
221
- "iterations": { "value": "NB_HAB", "type": "VTL" },
222
- "title": {
223
- "value": "\"### Le bulletin individuel de \" || PRENOMS",
224
- "type": "VTL|MD"
225
- },
226
- "responses": [
227
- {
228
- "label": { "value": "\"L'age de \" || PRENOMS", "type": "VTL" },
229
- "value": { "value": "cast(AGE,string) || \" ans\"", "type": "VTL" }
230
- },
231
- {
232
- "label": { "value": "\"Le sexe de \" || PRENOMS", "type": "VTL" },
233
- "value": {
234
- "value": "if(SEXE = \"1\") then \"Masculin\" else \"Féminin\"",
235
- "type": "VTL"
236
- }
237
- }
238
- ]
239
- },
240
- {
241
- "title": {
242
- "value": "\"### La feuille logement\"",
243
- "type": "VTL|MD"
244
- },
245
- "responses": [
246
- {
247
- "label": { "value": "\"Zéro divisé par zéro \"", "type": "VTL" },
248
- "value": { "value": "cast(ZERO,string) || \", mais ça tu savais déjà !\"", "type": "VTL" }
249
- },
250
- {
251
- "label": { "value": "\"Nombre d'habitants \"", "type": "VTL" },
252
- "value": { "value": "cast(NB_HAB,string) || \" personnes\"", "type": "VTL" }
253
- }
254
- ]
255
- }
256
- ],
219
+ "sections": [
220
+ {
221
+ "id": "summary-section-0",
222
+ "iterations": { "value": "NB_HAB", "type": "VTL" },
223
+ "title": {
224
+ "value": "\"### Le bulletin individuel de \" || PRENOMS",
225
+ "type": "VTL|MD"
226
+ },
227
+ "responses": [
228
+ {
229
+ "id": "summary-section-0-response-0",
230
+ "label": { "value": "\"L'age de \" || PRENOMS", "type": "VTL" },
231
+ "value": {
232
+ "value": "cast(AGE,string) || \" ans\"",
233
+ "type": "VTL"
234
+ }
235
+ },
236
+ {
237
+ "id": "summary-section-0-response-1",
238
+ "label": { "value": "\"Le sexe de \" || PRENOMS", "type": "VTL" },
239
+ "value": {
240
+ "value": "if(SEXE = \"1\") then \"Masculin\" else \"Féminin\"",
241
+ "type": "VTL"
242
+ }
243
+ }
244
+ ]
245
+ },
246
+ {
247
+ "id": "summary-section-1",
248
+ "title": {
249
+ "value": "\"### La feuille logement\"",
250
+ "type": "VTL|MD"
251
+ },
252
+ "responses": [
253
+ {
254
+ "id": "summary-section-1-response-0",
255
+ "label": { "value": "\"Zéro divisé par zéro \"", "type": "VTL" },
256
+ "value": {
257
+ "value": "cast(ZERO,string) || \", mais ça tu savais déjà !\"",
258
+ "type": "VTL"
259
+ }
260
+ },
261
+ {
262
+ "id": "summary-section-1-response-1",
263
+ "label": { "value": "\"Nombre d'habitants \"", "type": "VTL" },
264
+ "value": {
265
+ "value": "cast(NB_HAB,string) || \" personnes\"",
266
+ "type": "VTL"
267
+ }
268
+ }
269
+ ]
270
+ }
271
+ ],
257
272
  "conditionFilter": { "value": "true", "type": "VTL" },
258
273
  "page": "5"
259
274
  }
@@ -270,7 +285,7 @@
270
285
  "INPUTED": null
271
286
  }
272
287
  },
273
- {
288
+ {
274
289
  "variableType": "COLLECTED",
275
290
  "name": "ZERO",
276
291
  "values": {
@@ -13,8 +13,7 @@ var _logger = require("../../utils/logger");
13
13
  var _overview = require("./overview");
14
14
  var _waiting = _interopRequireDefault(require("./waiting"));
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", "readOnly"],
17
- _excluded2 = ["id", "componentType", "response", "storeName", "conditionFilter"];
16
+ var _excluded = ["source", "data", "management", "shortcut", "activeControls", "features", "initialPage", "getStoreInfo", "missing", "missingStrategy", "missingShortcut", "autoSuggesterLoading", "addExternal", "preferences", "custom", "showOverview", "filterDescription", "getReferentiel", "dontKnowButton", "refusedButton", "readOnly"];
18
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
18
  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); }
20
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -51,7 +50,7 @@ function DevOptions(_ref) {
51
50
  className: "title",
52
51
  children: "Options d\xE9veloppeur"
53
52
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
54
- className: "contenur",
53
+ className: "conteneur",
55
54
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(lunatic.Button, {
56
55
  onClick: function onClick() {
57
56
  return _logger.Logger.log(getData(true));
@@ -77,7 +76,7 @@ function DevOptions(_ref) {
77
76
  handleChange: handleChange,
78
77
  min: 1,
79
78
  label: 'Page',
80
- description: 'the page wher you want to jump'
79
+ description: 'the page where you want to jump'
81
80
  })]
82
81
  })]
83
82
  });
@@ -225,27 +224,17 @@ function OrchestratorForStories(_ref3) {
225
224
  className: "container",
226
225
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
227
226
  className: "components",
228
- children: components.map(function (component) {
229
- var id = component.id,
230
- componentType = component.componentType,
231
- response = component.response,
232
- storeName = component.storeName,
233
- conditionFilter = component.conditionFilter,
234
- other = _objectWithoutProperties(component, _excluded2);
235
- var Component = lunatic[componentType];
236
- var storeInfo = storeName ? getStoreInfo(storeName) : {};
237
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
238
- className: "lunatic lunatic-component",
239
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
240
- id: id,
241
- response: response
242
- }, other), rest), component), storeInfo), {}, {
243
- // fill error when needed
227
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(lunatic.LunaticComponents, {
228
+ autoFocusKey: pageTag,
229
+ components: components,
230
+ componentProps: function componentProps(_ref4) {
231
+ var storeName = _ref4.storeName;
232
+ return _objectSpread({
244
233
  errors: errorActive[pageTag],
245
234
  filterDescription: filterDescription,
246
235
  disabled: readOnly
247
- }))
248
- }, "component-".concat(id));
236
+ }, storeName ? getStoreInfo(storeName) : {});
237
+ }
249
238
  })
250
239
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Pager, {
251
240
  goPrevious: goPreviousPage,
@@ -1,6 +1,6 @@
1
- import { LunaticSource } from '../../src/use-lunatic/type-source';
1
+ import type { LunaticSource } from '../../src/use-lunatic/type-source';
2
2
  import type { LunaticData, LunaticState } from '../../src/use-lunatic/type';
3
- import { ActionInit } from '../../src/use-lunatic/actions';
3
+ import { type ActionInit } from '../../src/use-lunatic/actions';
4
4
  /**
5
5
  * Generate a base state from a source / data for unit testing reducer
6
6
  */
@@ -9,3 +9,17 @@ export declare function generateState(source: LunaticSource, data?: Record<strin
9
9
  * Generate LunaticData from a record of values
10
10
  */
11
11
  export declare function generateData<T extends Record<string, unknown>>(data: T): LunaticData;
12
+ export declare function generateVariable({ type, name }: {
13
+ type?: string | undefined;
14
+ name?: string | undefined;
15
+ }): {
16
+ variableType: string;
17
+ name: string;
18
+ values: {
19
+ PREVIOUS: null;
20
+ COLLECTED: null;
21
+ FORCED: null;
22
+ EDITED: null;
23
+ INPUTED: null;
24
+ };
25
+ };
@@ -101,41 +101,6 @@ function createExecuteExpression(variables, features) {
101
101
  pushToLazy(name);
102
102
  }
103
103
 
104
- /**
105
- * Update the binding for a loop
106
- */
107
- function setLoopBindings(variables, iteration) {
108
- Object.entries(bindings).forEach(function (_ref3) {
109
- var _ref4 = _slicedToArray(_ref3, 2),
110
- k = _ref4[0],
111
- v = _ref4[1];
112
- var _variables$k = variables[k],
113
- type = _variables$k.type,
114
- value = _variables$k.value;
115
- if (!Array.isArray(v) && type === _constants.COLLECTED && Array.isArray(value)) {
116
- bindings[k] = value[iteration];
117
- pushToLazy(k);
118
- }
119
- });
120
- }
121
-
122
- /**
123
- * Reset the values in a loop
124
- */
125
- function resetLoopBindings(variables) {
126
- Object.entries(bindings).forEach(function (_ref5) {
127
- var _ref6 = _slicedToArray(_ref5, 2),
128
- k = _ref6[0],
129
- v = _ref6[1];
130
- var _variables$k2 = variables[k],
131
- type = _variables$k2.type,
132
- value = _variables$k2.value;
133
- if (type === _constants.COLLECTED && Array.isArray(value) && !Array.isArray(v)) {
134
- bindings[k] = value;
135
- }
136
- });
137
- }
138
-
139
104
  /**
140
105
  * Extract variables from an expression
141
106
  */
@@ -177,9 +142,9 @@ function createExecuteExpression(variables, features) {
177
142
  }
178
143
  return {};
179
144
  }
180
- function resolveUseContext(name, _ref7) {
181
- var iteration = _ref7.iteration,
182
- linksIterations = _ref7.linksIterations;
145
+ function resolveUseContext(name, _ref3) {
146
+ var iteration = _ref3.iteration,
147
+ linksIterations = _ref3.linksIterations;
183
148
  var value = bindings[name];
184
149
  if ([_constants.X_AXIS, _constants.Y_AXIS].includes(name) && linksIterations !== undefined) {
185
150
  pushToLazy(name);
@@ -212,13 +177,13 @@ function createExecuteExpression(variables, features) {
212
177
  }
213
178
  return (0, _vtl["default"])(value);
214
179
  }
215
- function fillVariablesValues(map, _ref8) {
216
- var iteration = _ref8.iteration,
217
- linksIterations = _ref8.linksIterations;
218
- return Object.entries(map).reduce(function (sub, _ref9) {
219
- var _ref10 = _slicedToArray(_ref9, 2),
220
- name = _ref10[0],
221
- _ = _ref10[1];
180
+ function fillVariablesValues(map, _ref4) {
181
+ var iteration = _ref4.iteration,
182
+ linksIterations = _ref4.linksIterations;
183
+ return Object.entries(map).reduce(function (sub, _ref5) {
184
+ var _ref6 = _slicedToArray(_ref5, 2),
185
+ name = _ref6[0],
186
+ _ = _ref6[1];
222
187
  return _objectSpread(_objectSpread({}, sub), {}, _defineProperty({}, name, resolveUseContext(name, {
223
188
  iteration: iteration,
224
189
  linksIterations: linksIterations
@@ -226,6 +191,7 @@ function createExecuteExpression(variables, features) {
226
191
  }, {});
227
192
  }
228
193
  function execute(expObject) {
194
+ var _args$iteration;
229
195
  var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
230
196
  var _validateExpression = validateExpression((0, _getSafetyExpression["default"])(expObject)),
231
197
  expression = _validateExpression.value,
@@ -250,6 +216,8 @@ function createExecuteExpression(variables, features) {
250
216
  iteration: iteration,
251
217
  linksIterations: linksIterations
252
218
  });
219
+ // Add index has a specific variable
220
+ vtlBindings['GLOBAL_ITERATION_INDEX'] = (((_args$iteration = args === null || args === void 0 ? void 0 : args.iteration) !== null && _args$iteration !== void 0 ? _args$iteration : 0) + 1).toString();
253
221
  var memoized = getMemoizedValue(expression, vtlBindings);
254
222
  if (memoized === undefined) {
255
223
  var result = (0, _executeExpression["default"])(vtlBindings, expression, type, features, logging || loggingDefault);
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
  exports.executeVtlExpression = executeVtlExpression;
8
- var _react = _interopRequireDefault(require("react"));
9
8
  var _trevas = require("@inseefr/trevas");
10
9
  var _mdLabel = _interopRequireDefault(require("../../../components/commons/components/md-label"));
11
10
  var _vtl = _interopRequireDefault(require("../../../utils/vtl"));
@@ -24,7 +24,7 @@ var VTL_ATTRIBUTES = ['label', 'options.label', 'responses.label', 'hierarchy.la
24
24
  // Disable controls compilation
25
25
  // 'controls.control',
26
26
  // 'controls.errorMessage',
27
- 'controls.iterations', 'lines.min', 'lines.max', 'iterations', 'xAxisIterations', 'yAxisIterations', 'conditionFilter', 'headers.label', 'header.label'];
27
+ 'controls.iterations', 'lines.min', 'lines.max', 'iterations', 'xAxisIterations', 'yAxisIterations', 'conditionFilter', 'headers.label', 'header.label', 'disabled', 'readOnly'];
28
28
 
29
29
  // Utility type to replace all expression from an object into a translated version
30
30
 
@@ -99,6 +99,10 @@ function fillAttributes(component, _ref2) {
99
99
  return _objectSpread(_objectSpread({}, step), crawl(path, step));
100
100
  }, _objectSpread({}, component));
101
101
  }
102
+
103
+ /**
104
+ * Fill props interpreting VTL expression
105
+ */
102
106
  function fillComponentExpressions(component, state) {
103
107
  var pager = state.pager,
104
108
  executeExpression = state.executeExpression;
@@ -35,11 +35,19 @@ function compose() {
35
35
  *
36
36
  * Force typing for this function since it's doo dynamic
37
37
  */
38
- var fillComponent = compose(_fillFromState["default"], _fillComponentExpressions["default"], _fillSpecificExpression["default"], _fillPagination["default"], _fillComponentValue["default"], _fillMissingResponse["default"], _fillManagement["default"]);
38
+ var fillComponent = compose(_fillFromState["default"], _fillComponentExpressions["default"], _fillPagination["default"], _fillComponentValue["default"], _fillMissingResponse["default"], _fillManagement["default"], _fillSpecificExpression["default"]);
39
+
40
+ /**
41
+ * Fill components with values coming from the state, and interpret VTL expression
42
+ */
39
43
  function fillComponents(components, state) {
40
44
  return components.map(function (component) {
41
45
  return fillComponent(component, state);
42
- });
46
+ }).filter(matchConditionFilter);
47
+ }
48
+ function matchConditionFilter(_ref) {
49
+ var conditionFilter = _ref.conditionFilter;
50
+ return conditionFilter !== undefined ? conditionFilter : true;
43
51
  }
44
52
  var _default = fillComponents;
45
53
  exports["default"] = _default;
@@ -10,6 +10,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
10
10
  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; }
11
11
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
12
12
  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); }
13
+ /**
14
+ * Add state data as component props
15
+ */
13
16
  function fillFromState(component, state) {
14
17
  var handleChange = state.handleChange,
15
18
  executeExpression = state.executeExpression,
@@ -5,6 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
+ var _fillComponents = _interopRequireDefault(require("./fill-components"));
9
+ var _array = require("../../../utils/array");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
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; }
9
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; }
10
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; }
@@ -16,31 +19,73 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
16
19
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
20
  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; } }
18
21
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
- function resolveRoundabout(component, state) {
20
- var executeExpression = state.executeExpression;
21
- var componentType = component.componentType;
22
- if (componentType === 'Roundabout') {
23
- var iterations = component.iterations,
24
- expressions = component.expressions;
25
- var compiled = Object.entries(expressions).reduce(function (result, _ref) {
26
- var _ref2 = _slicedToArray(_ref, 2),
27
- name = _ref2[0],
28
- expression = _ref2[1];
29
- var values = new Array(iterations).fill(null).map(function (_, iteration) {
30
- return executeExpression(expression, {
31
- iteration: iteration
32
- });
22
+ /**
23
+ * Fill props for roundabout
24
+ * - expressions, VTL that states the level of completion for each iteration
25
+ */
26
+ function fillRoundaboutProps(component, state) {
27
+ var iterations = component.iterations,
28
+ expressions = component.expressions;
29
+ var compiled = Object.entries(expressions).reduce(function (result, _ref) {
30
+ var _ref2 = _slicedToArray(_ref, 2),
31
+ name = _ref2[0],
32
+ expression = _ref2[1];
33
+ var values = new Array(iterations).fill(null).map(function (_, iteration) {
34
+ return state.executeExpression(expression, {
35
+ iteration: iteration
33
36
  });
34
- return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, values));
35
- }, {});
36
- return _objectSpread(_objectSpread({}, component), {}, {
37
- expressions: compiled
38
37
  });
39
- }
40
- return component;
38
+ return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, values));
39
+ }, {});
40
+ return _objectSpread(_objectSpread({}, component), {}, {
41
+ expressions: compiled
42
+ });
43
+ }
44
+
45
+ /**
46
+ * Fill child components for nested component type
47
+ */
48
+ function fillChildComponents(component, state) {
49
+ return _objectSpread(_objectSpread({}, component), {}, {
50
+ components: (0, _fillComponents["default"])(component.components, state)
51
+ });
41
52
  }
53
+
54
+ /**
55
+ * For loops, inject a method to retrieve component at a specific iteration
56
+ */
57
+ function fillChildComponentsWithIteration(component, state) {
58
+ return _objectSpread(_objectSpread({}, component), {}, {
59
+ getComponents: function getComponents(iteration) {
60
+ return (0, _fillComponents["default"])(component.components, _objectSpread(_objectSpread({}, state), {}, {
61
+ handleChange: function handleChange(response, value) {
62
+ var _component$value$resp, _component$value;
63
+ state.handleChange(response, (0, _array.setAtIndex)((_component$value$resp = (_component$value = component.value) === null || _component$value === void 0 ? void 0 : _component$value[response.name]) !== null && _component$value$resp !== void 0 ? _component$value$resp : [], iteration, value));
64
+ },
65
+ pager: _objectSpread(_objectSpread({}, state.pager), {}, {
66
+ iteration: iteration,
67
+ subPage: 0 // Fake a subpage to simulate an iteration
68
+ })
69
+ }));
70
+ }
71
+ });
72
+ }
73
+
74
+ /**
75
+ * Fill component specific props (RoundAbout for instance)
76
+ */
42
77
  function fillSpecificExpressions(component, state) {
43
- return resolveRoundabout(component, state);
78
+ switch (component.componentType) {
79
+ case 'Roundabout':
80
+ return fillRoundaboutProps(component, state);
81
+ case 'ComponentSet':
82
+ return fillChildComponents(component, state);
83
+ case 'Loop':
84
+ case 'RosterForLoop':
85
+ return fillChildComponentsWithIteration(component, state);
86
+ default:
87
+ return component;
88
+ }
44
89
  }
45
90
  var _default = fillSpecificExpressions;
46
91
  exports["default"] = _default;
@@ -19,9 +19,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
19
19
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
20
20
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
21
21
  function isInSubPage(state) {
22
- var pager = state.pager;
23
- var subPage = pager.subPage;
24
- return subPage !== undefined;
22
+ return state.pager.subPage !== undefined;
25
23
  }
26
24
 
27
25
  /**
@@ -30,6 +30,7 @@ function pageStringToNumbers(page) {
30
30
  * if no components can be displayed on this page (using filter)
31
31
  */
32
32
  function isPageEmpty(state) {
33
+ var isMovingBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
33
34
  var executeExpression = state.executeExpression,
34
35
  pager = state.pager;
35
36
  var iteration = pager.iteration;
@@ -42,6 +43,11 @@ function isPageEmpty(state) {
42
43
  return true;
43
44
  });
44
45
 
46
+ // When moving backward, modal only pages should be skipped
47
+ if (isMovingBackward && visibleComponents.length === 1 && visibleComponents[0].componentType === 'ConfirmationModal') {
48
+ return true;
49
+ }
50
+
45
51
  // No components are displayable on this page
46
52
  if (visibleComponents.length === 0) {
47
53
  return true;
@@ -22,5 +22,5 @@ function useLoopVariables(pager, pages) {
22
22
  return c.componentType === 'Loop';
23
23
  });
24
24
  return (_loop$loopDependencie = loop === null || loop === void 0 ? void 0 : loop.loopDependencies) !== null && _loop$loopDependencie !== void 0 ? _loop$loopDependencie : [];
25
- }, [page, inIteration]);
25
+ }, [page, pages, inIteration]);
26
26
  }
@@ -3,21 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.reduceGoNextPage = void 0;
7
7
  var _commons = require("../commons");
8
- var _compose = _interopRequireDefault(require("../commons/compose"));
9
- var _overviewOnChange = require("./overview/overview-on-change");
10
- var _pageNavigation = require("../commons/page-navigation");
11
8
  var _page = require("../commons/page");
9
+ var _pageNavigation = require("../commons/page-navigation");
12
10
  var _autoExploreLoop = require("./commons/auto-explore-loop");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+ var _overviewOnChange = require("./overview/overview-on-change");
14
12
  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); }
15
13
  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
14
  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; }
17
15
  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; }
18
16
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
19
17
  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); }
20
- function reduceGoNextPage(state) {
18
+ function reduceGoNext(state) {
21
19
  var _pages$pager$page;
22
20
  var pages = state.pages,
23
21
  pager = state.pager;
@@ -33,7 +31,7 @@ function reduceGoNextPage(state) {
33
31
 
34
32
  // We reached an empty page, move forward
35
33
  if ((0, _page.isPageEmpty)(newState)) {
36
- return reduceGoNextPage(newState);
34
+ return reduceGoNext(newState);
37
35
  }
38
36
 
39
37
  // If we reached a loop, go inside
@@ -41,7 +39,7 @@ function reduceGoNextPage(state) {
41
39
 
42
40
  // We explored a loop, check if we reached an empty page, move forward
43
41
  if (newState.pager !== nextPager && (0, _page.isPageEmpty)(newState)) {
44
- return reduceGoNextPage(newState);
42
+ return reduceGoNext(newState);
45
43
  }
46
44
  return _objectSpread(_objectSpread({}, newState), {}, {
47
45
  isInLoop: newState.pager.iteration !== undefined,
@@ -50,5 +48,7 @@ function reduceGoNextPage(state) {
50
48
  })
51
49
  });
52
50
  }
53
- var _default = (0, _compose["default"])(reduceGoNextPage, _overviewOnChange.overviewOnChange);
54
- exports["default"] = _default;
51
+ var reduceGoNextPage = function reduceGoNextPage(state) {
52
+ return (0, _overviewOnChange.overviewOnChange)(reduceGoNext(state));
53
+ };
54
+ exports.reduceGoNextPage = reduceGoNextPage;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _vitest = require("vitest");
4
+ var _lunatic = require("../../../tests/utils/lunatic");
5
+ var _source = _interopRequireDefault(require("../../stories/modal/source.json"));
6
+ var _reduceGoNextPage = require("./reduce-go-next-page");
7
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
+ (0, _vitest.describe)('reduceGoPreviousPage', function () {
9
+ (0, _vitest.it)('should move forward for modal', function () {
10
+ var state = (0, _lunatic.generateState)(_source["default"]);
11
+ (0, _vitest.expect)((0, _reduceGoNextPage.reduceGoNextPage)(state).pager.page).toBe('2');
12
+ });
13
+ });
@@ -29,15 +29,15 @@ function reduceGoPreviousPage(state) {
29
29
  });
30
30
 
31
31
  // We reached an empty page, keep going backward
32
- if ((0, _page.isPageEmpty)(newState)) {
32
+ if ((0, _page.isPageEmpty)(newState, true)) {
33
33
  return reduceGoPreviousPage(newState);
34
34
  }
35
35
 
36
36
  // If we reached a loop, go to the last iteration / sequence
37
37
  newState = (0, _autoExploreLoop.autoExploreLoop)(newState, 'backward');
38
38
 
39
- // We explored a loop, check if we reached an empty page, move forward
40
- if (newState.pager !== prevPager && (0, _page.isPageEmpty)(newState)) {
39
+ // We explored a loop, check if we reached an empty page, move backward
40
+ if (newState.pager !== prevPager && (0, _page.isPageEmpty)(newState, true)) {
41
41
  return reduceGoPreviousPage(newState);
42
42
  }
43
43
  return _objectSpread(_objectSpread({}, newState), {}, {
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _vitest = require("vitest");
4
+ var _lunatic = require("../../../tests/utils/lunatic");
5
+ var _source = _interopRequireDefault(require("../../stories/modal/source.json"));
6
+ var _reduceGoPreviousPage = _interopRequireDefault(require("./reduce-go-previous-page"));
7
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
+ (0, _vitest.describe)('reduceGoPreviousPage', function () {
9
+ (0, _vitest.it)('should skip modal when going backward', function () {
10
+ var state = (0, _lunatic.generateState)(_source["default"]);
11
+ state.pager.page = '3';
12
+ (0, _vitest.expect)((0, _reduceGoPreviousPage["default"])(state).pager.page).toBe('1');
13
+ });
14
+ });