@inseefr/lunatic 2.6.2 → 2.7.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 (469) hide show
  1. package/README.md +13 -3
  2. package/lib/components/button/lunatic-button.js +1 -2
  3. package/lib/components/checkbox/checkbox-boolean/html/checkbox-boolean.js +1 -2
  4. package/lib/components/checkbox/checkbox-boolean/lunatic-checkbox-boolean.js +1 -2
  5. package/lib/components/checkbox/checkbox-group/checkbox-group-content.js +1 -2
  6. package/lib/components/checkbox/checkbox-group/html/checkbox-group-content.js +1 -2
  7. package/lib/components/checkbox/checkbox-group/html/checkbox-group.js +1 -2
  8. package/lib/components/checkbox/checkbox-group/lunatic-checkbox-group.js +1 -2
  9. package/lib/components/checkbox/checkbox-one/html/checkbox-one.js +1 -2
  10. package/lib/components/checkbox/checkbox-one/lunatic-checkbox-one.js +1 -2
  11. package/lib/components/checkbox/commons/checkbox-option.js +1 -2
  12. package/lib/components/checkbox/commons/checkbox-option.spec.js +3 -3
  13. package/lib/components/checkbox/commons/getShortcutKey.js +2 -3
  14. package/lib/components/commons/components/combo-box/combo-box-container.js +1 -2
  15. package/lib/components/commons/components/combo-box/combo-box-content-box.js +1 -2
  16. package/lib/components/commons/components/combo-box/combo-box-content.js +5 -6
  17. package/lib/components/commons/components/combo-box/combo-box.js +4 -5
  18. package/lib/components/commons/components/combo-box/combo-box.stories.js +46 -49
  19. package/lib/components/commons/components/combo-box/keyboard-key-codes.js +2 -3
  20. package/lib/components/commons/components/combo-box/panel/combo-box-option.js +1 -2
  21. package/lib/components/commons/components/combo-box/panel/option-container.spec.js +3 -3
  22. package/lib/components/commons/components/combo-box/panel/panel-container.js +1 -2
  23. package/lib/components/commons/components/combo-box/panel/panel.spec.js +32 -17
  24. package/lib/components/commons/components/combo-box/selection/clear-button.js +1 -2
  25. package/lib/components/commons/components/combo-box/selection/clear-button.spec.js +61 -27
  26. package/lib/components/commons/components/combo-box/selection/combo-box-label-selection.js +1 -2
  27. package/lib/components/commons/components/combo-box/selection/input.js +4 -5
  28. package/lib/components/commons/components/combo-box/selection/label-selection.js +1 -2
  29. package/lib/components/commons/components/combo-box/selection/selection-container.js +1 -2
  30. package/lib/components/commons/components/combo-box/selection/selection.js +1 -1
  31. package/lib/components/commons/components/description.js +2 -4
  32. package/lib/components/commons/components/dragger/dragger.js +5 -6
  33. package/lib/components/commons/components/errors/errors.js +2 -3
  34. package/lib/components/commons/components/fab/fab.js +1 -2
  35. package/lib/components/commons/components/fab/fab.spec.js +59 -34
  36. package/lib/components/commons/components/field-container/field-container.js +1 -2
  37. package/lib/components/commons/components/fieldset.js +1 -2
  38. package/lib/components/commons/components/html-table/table.js +1 -2
  39. package/lib/components/commons/components/html-table/tbody.js +1 -2
  40. package/lib/components/commons/components/html-table/td.js +1 -2
  41. package/lib/components/commons/components/html-table/th.js +1 -2
  42. package/lib/components/commons/components/html-table/th.spec.js +3 -3
  43. package/lib/components/commons/components/html-table/thead.js +1 -2
  44. package/lib/components/commons/components/html-table/thead.spec.js +3 -3
  45. package/lib/components/commons/components/html-table/tr.js +1 -2
  46. package/lib/components/commons/components/is-network/is-network.js +7 -8
  47. package/lib/components/commons/components/is-network/use-online-status.js +1 -2
  48. package/lib/components/commons/components/label/label.js +1 -2
  49. package/lib/components/commons/components/lunatic-component-with-label.js +4 -5
  50. package/lib/components/commons/components/lunatic-component-without-label.js +4 -5
  51. package/lib/components/commons/components/md-label/link.js +1 -2
  52. package/lib/components/commons/components/md-label/md-label.js +4 -5
  53. package/lib/components/commons/components/missing/missing.js +5 -7
  54. package/lib/components/commons/components/nothing-to-display.js +1 -2
  55. package/lib/components/commons/components/orchestrated-component.js +6 -7
  56. package/lib/components/commons/components/variable-status/variable-status.js +5 -6
  57. package/lib/components/commons/create-customizable-field.js +4 -5
  58. package/lib/components/commons/icons/radio-checked-icon.js +1 -2
  59. package/lib/components/commons/index.js +3 -3
  60. package/lib/components/commons/safety-label.js +2 -3
  61. package/lib/components/commons/use-document-add-event-listener.js +1 -2
  62. package/lib/components/commons/use-on-handle-change.js +1 -2
  63. package/lib/components/commons/use-options-keydown.js +1 -2
  64. package/lib/components/component-set/html/component-set-wrapper.js +2 -3
  65. package/lib/components/component-set/html/component-set.js +1 -2
  66. package/lib/components/component-set/lunatic-component-set.js +3 -3
  67. package/lib/components/datepicker/html/datepicker-container.js +1 -2
  68. package/lib/components/datepicker/html/datepicker-input.js +1 -2
  69. package/lib/components/datepicker/html/datepicker.js +1 -2
  70. package/lib/components/datepicker/lunatic-datepicker.js +1 -2
  71. package/lib/components/declarations/declaration.js +1 -2
  72. package/lib/components/declarations/declarations-after-text.js +6 -7
  73. package/lib/components/declarations/declarations-before-text.js +6 -7
  74. package/lib/components/declarations/declarations-detachable.js +6 -7
  75. package/lib/components/declarations/declarations.js +2 -4
  76. package/lib/components/declarations/index.js +3 -3
  77. package/lib/components/dropdown/html/dropdown-simple/dropdown-simple.js +1 -2
  78. package/lib/components/dropdown/html/dropdown-simple/simple-label-renderer.js +1 -2
  79. package/lib/components/dropdown/html/dropdown-simple/simple-option-renderer.js +1 -2
  80. package/lib/components/dropdown/html/dropdown-writable/dropdown-writable.js +2 -3
  81. package/lib/components/dropdown/html/dropdown-writable/filter-tools/filter-options.js +1 -2
  82. package/lib/components/dropdown/html/dropdown-writable/filter-tools/get-label.js +2 -3
  83. package/lib/components/dropdown/html/dropdown-writable/filter-tools/letters-matching.js +1 -2
  84. package/lib/components/dropdown/html/dropdown-writable/filter-tools/match.js +1 -2
  85. package/lib/components/dropdown/html/dropdown-writable/filter-tools/prepare-prefix.js +1 -2
  86. package/lib/components/dropdown/html/dropdown-writable/writable-label-renderer.js +1 -2
  87. package/lib/components/dropdown/html/dropdown-writable/writable-option-renderer.js +5 -6
  88. package/lib/components/dropdown/html/dropdown.js +1 -2
  89. package/lib/components/dropdown/lunatic-dropdown.js +1 -2
  90. package/lib/components/duration/duration.js +1 -2
  91. package/lib/components/duration/durationInput.js +5 -6
  92. package/lib/components/duration/durationUtils.js +3 -5
  93. package/lib/components/duration/formatDuration.js +2 -3
  94. package/lib/components/duration/getDurationFromValue.js +1 -2
  95. package/lib/components/filter-description/component.js +1 -2
  96. package/lib/components/index.js +4 -4
  97. package/lib/components/input/html/input.js +1 -2
  98. package/lib/components/input/lunatic-input.js +1 -2
  99. package/lib/components/input-number/html/input-number-thousand.js +2 -3
  100. package/lib/components/input-number/html/input-number.js +1 -2
  101. package/lib/components/input-number/lunatic-input-number.js +1 -2
  102. package/lib/components/loop/block-for-loop.js +12 -17
  103. package/lib/components/loop/loop.js +3 -3
  104. package/lib/components/loop/roster-for-loop/roster-for-loop.js +32 -41
  105. package/lib/components/lunatic-components.js +21 -10
  106. package/lib/components/modal/html/modal.js +1 -2
  107. package/lib/components/modal/lunatic-modal.js +2 -3
  108. package/lib/components/modal-controls/close-or-skip.js +1 -2
  109. package/lib/components/modal-controls/modal-container.js +1 -2
  110. package/lib/components/modal-controls/modal-controls.js +5 -6
  111. package/lib/components/pairwise-links/pairwise-links.js +28 -32
  112. package/lib/components/question-explication/html/question-explication.js +2 -3
  113. package/lib/components/question-explication/lunatic-question-explication.js +1 -2
  114. package/lib/components/question-explication/question-explication.spec.js +4 -4
  115. package/lib/components/questions/question-context.js +1 -2
  116. package/lib/components/questions/question-information.js +1 -2
  117. package/lib/components/radio/html/radio-group-content.js +1 -2
  118. package/lib/components/radio/html/radio-group.js +1 -2
  119. package/lib/components/radio/html/radio-option.js +2 -3
  120. package/lib/components/radio/lunatic-radio-group.js +1 -2
  121. package/lib/components/roundabout/components/roundabout-container.js +1 -2
  122. package/lib/components/roundabout/components/roundabout-it-button.js +4 -5
  123. package/lib/components/roundabout/components/roundabout-it-container.js +1 -2
  124. package/lib/components/roundabout/components/roundabout-it-title.js +1 -2
  125. package/lib/components/roundabout/components/roundabout-label.js +1 -2
  126. package/lib/components/roundabout/components/roundabout-pending.js +1 -2
  127. package/lib/components/roundabout/lunatic-roundabout.js +1 -2
  128. package/lib/components/roundabout/redirect.js +4 -5
  129. package/lib/components/roundabout/roundabout.js +1 -2
  130. package/lib/components/sequence/html/sequence.js +1 -2
  131. package/lib/components/sequence/lunatic-sequence.js +1 -2
  132. package/lib/components/sequence/sequence.spec.js +3 -3
  133. package/lib/components/subsequence/subsequence.js +1 -2
  134. package/lib/components/subsequence/subsequence.spec.js +3 -3
  135. package/lib/components/suggester/find-best-label/find-best-label.js +1 -2
  136. package/lib/components/suggester/html/notification.js +1 -2
  137. package/lib/components/suggester/html/suggester.js +5 -6
  138. package/lib/components/suggester/idb-suggester/check-store.js +4 -5
  139. package/lib/components/suggester/idb-suggester/idb-suggester.js +1 -1
  140. package/lib/components/suggester/idb-suggester/suggester-notification.js +1 -2
  141. package/lib/components/suggester/idb-suggester/suggester-status.js +1 -2
  142. package/lib/components/suggester/lunatic-suggester.js +1 -2
  143. package/lib/components/suggester/searching/create-searching.js +9 -6
  144. package/lib/components/suggester-loader-widget/loader-row.js +2 -3
  145. package/lib/components/suggester-loader-widget/loader.js +4 -5
  146. package/lib/components/suggester-loader-widget/progress.js +1 -2
  147. package/lib/components/suggester-loader-widget/tools/action-tool.js +1 -2
  148. package/lib/components/suggester-loader-widget/tools/tools.js +1 -2
  149. package/lib/components/suggester-loader-widget/widget-container.js +1 -2
  150. package/lib/components/suggester-loader-widget/widget.js +7 -8
  151. package/lib/components/summary/html/summary-responses.js +1 -2
  152. package/lib/components/summary/html/summary-title.js +1 -2
  153. package/lib/components/switch/html/switch.js +1 -2
  154. package/lib/components/switch/lunatic-switch.js +1 -2
  155. package/lib/components/table/lunatic-table.js +23 -15
  156. package/lib/components/table/{header.js → table-header.js} +3 -5
  157. package/lib/components/textarea/html/textarea.js +1 -2
  158. package/lib/components/textarea/lunatic-textarea.js +1 -2
  159. package/lib/constants/component-types.js +1 -2
  160. package/lib/constants/declarations.js +10 -18
  161. package/lib/constants/event-types.js +10 -20
  162. package/lib/constants/supported-preferences.js +4 -5
  163. package/lib/constants/value-types.js +5 -10
  164. package/lib/constants/variable-types.js +3 -5
  165. package/lib/hooks/use-track-changes.js +50 -0
  166. package/lib/i18n/build-dictionary.js +8 -11
  167. package/lib/i18n/dictionary.js +1 -2
  168. package/lib/i18n/index.js +7 -9
  169. package/lib/i18n/inputNumberProps.js +2 -4
  170. package/lib/src/components/commons/components/combo-box/combo-box.stories.d.ts +6 -57
  171. package/lib/src/components/index.d.ts +2 -2
  172. package/lib/src/components/loop/block-for-loop.d.ts +3 -4
  173. package/lib/src/components/loop/roster-for-loop/roster-for-loop.d.ts +3 -4
  174. package/lib/src/components/lunatic-components.d.ts +5 -3
  175. package/lib/src/components/pairwise-links/pairwise-links.d.ts +1 -2
  176. package/lib/src/components/table/lunatic-table.d.ts +1 -1
  177. package/lib/src/components/table/{header.d.ts → table-header.d.ts} +2 -2
  178. package/lib/src/components/type.d.ts +5 -6
  179. package/lib/src/hooks/use-track-changes.d.ts +9 -0
  180. package/lib/src/use-lunatic/actions.d.ts +3 -16
  181. package/lib/src/use-lunatic/commons/compile-controls.d.ts +3 -2
  182. package/lib/src/use-lunatic/commons/component.d.ts +22 -0
  183. package/lib/src/use-lunatic/commons/fill-components/fill-component-value.d.ts +2 -3
  184. package/lib/src/use-lunatic/commons/fill-components/fill-components.d.ts +6 -0
  185. package/lib/src/use-lunatic/commons/fill-components/fill-from-state.d.ts +107 -122
  186. package/lib/src/use-lunatic/commons/fill-components/fill-iterations.d.ts +112 -0
  187. package/lib/src/use-lunatic/commons/fill-components/fill-specific-expression.d.ts +53 -89
  188. package/lib/src/use-lunatic/commons/get-compatible-vtl-expression.d.ts +1 -0
  189. package/lib/src/use-lunatic/commons/index.d.ts +0 -3
  190. package/lib/src/use-lunatic/commons/variables/behaviours/cleaning-behaviour.d.ts +7 -0
  191. package/lib/src/use-lunatic/commons/variables/behaviours/missing-behaviour.d.ts +7 -0
  192. package/lib/src/use-lunatic/commons/variables/behaviours/resizing-behaviour.d.ts +7 -0
  193. package/lib/src/use-lunatic/commons/variables/get-questionnaire-data.d.ts +4 -0
  194. package/lib/src/use-lunatic/commons/variables/lunatic-variables-store.d.ts +77 -0
  195. package/lib/src/use-lunatic/reducer/overview/overview-on-init.d.ts +10 -8
  196. package/lib/src/use-lunatic/reducer/reduce-handle-change.d.ts +6 -0
  197. package/lib/src/use-lunatic/reducer/reduce-on-init.d.ts +1 -12
  198. package/lib/src/use-lunatic/type-source.d.ts +7 -21
  199. package/lib/src/use-lunatic/type.d.ts +13 -11
  200. package/lib/src/use-lunatic/use-lunatic.d.ts +33 -56
  201. package/lib/src/utils/array.d.ts +6 -1
  202. package/lib/src/utils/env.d.ts +1 -0
  203. package/lib/src/utils/number.d.ts +4 -0
  204. package/lib/src/utils/variables.d.ts +5 -0
  205. package/lib/src/utils/vtl.d.ts +14 -0
  206. package/lib/stories/Introduction.stories.mdx +2 -4
  207. package/lib/stories/checkbox-boolean/checkboxBoolean.stories.js +5 -7
  208. package/lib/stories/checkbox-group/checkbox-group.stories.js +28 -11
  209. package/lib/stories/checkbox-group/source.json +343 -27
  210. package/lib/stories/checkbox-one/checkboxOne.stories.js +5 -7
  211. package/lib/stories/component-set/component-set.stories.js +7 -11
  212. package/lib/stories/custom-mui/checkbox-boolean-mui.js +4 -5
  213. package/lib/stories/custom-mui/checkbox-group-mui.js +4 -5
  214. package/lib/stories/custom-mui/checkbox-one-mui.js +1 -2
  215. package/lib/stories/custom-mui/input-mui.js +4 -5
  216. package/lib/stories/custom-mui/input-number-mui.js +4 -5
  217. package/lib/stories/custom-mui/radio-mui.js +4 -5
  218. package/lib/stories/custom-mui/suggester-mui/suggester-mui.js +5 -6
  219. package/lib/stories/custom-mui/switch-mui.js +4 -5
  220. package/lib/stories/custom-mui/table-mui.js +1 -2
  221. package/lib/stories/custom-mui/tbody-mui.js +1 -2
  222. package/lib/stories/custom-mui/td-mui.js +1 -2
  223. package/lib/stories/custom-mui/textarea-mui.js +4 -5
  224. package/lib/stories/custom-mui/th-mui.js +1 -2
  225. package/lib/stories/custom-mui/thead-mui.js +1 -2
  226. package/lib/stories/custom-mui/tr-mui.js +1 -2
  227. package/lib/stories/date-picker/datepicker.stories.js +5 -7
  228. package/lib/stories/declaration/input.stories.js +5 -7
  229. package/lib/stories/disabled/disabled.stories.js +5 -7
  230. package/lib/stories/dropdown/dropdown.stories.js +5 -7
  231. package/lib/stories/duration/duration.stories.js +6 -9
  232. package/lib/stories/filter-description/filter-description.stories.js +6 -9
  233. package/lib/stories/input/input.stories.js +6 -9
  234. package/lib/stories/input-number/input-number.stories.js +7 -11
  235. package/lib/stories/loop/block-for-loop.stories.js +7 -11
  236. package/lib/stories/loop/paginated-loop.stories.js +5 -7
  237. package/lib/stories/loop/roster-for-loop.stories.js +8 -12
  238. package/lib/stories/modal/modal.stories.js +5 -7
  239. package/lib/stories/overview/overview.stories.js +5 -7
  240. package/lib/stories/pairwise/pairwise-links.stories.js +8 -12
  241. package/lib/stories/paste-questionnaire/test.stories.js +5 -7
  242. package/lib/stories/question-explication/question-explication.stories.js +5 -7
  243. package/lib/stories/questionnaires/logement/logement.stories.js +7 -11
  244. package/lib/stories/questionnaires/recensement/recensement.stories.js +5 -7
  245. package/lib/stories/questionnaires/rp/rp.stories.js +5 -7
  246. package/lib/stories/questionnaires/simpsons/simpsons.stories.js +8 -12
  247. package/lib/stories/questionnaires-test/controls/controls-externes.stories.js +5 -7
  248. package/lib/stories/questionnaires-test/controls/controls.stories.js +9 -15
  249. package/lib/stories/questionnaires-test/test.stories.js +9 -15
  250. package/lib/stories/questionnaires2023/bySequence/ticWeb.stories.js +5 -7
  251. package/lib/stories/questionnaires2023/famille/famille.stories.js +5 -7
  252. package/lib/stories/questionnaires2023/simpsons/simpsons.stories.js +5 -7
  253. package/lib/stories/questionnaires2023/ticTel/ticWeb.stories.js +5 -7
  254. package/lib/stories/questionnaires2023/ticWeb/ticWeb.stories.js +5 -7
  255. package/lib/stories/radio/radio.stories.js +5 -7
  256. package/lib/stories/resizing-questionnaire/test.stories.js +5 -7
  257. package/lib/stories/roundabout/roundabout.stories.js +6 -9
  258. package/lib/stories/sequence/sequence.stories.js +5 -7
  259. package/lib/stories/suggester/suggester-workers.stories.js +7 -9
  260. package/lib/stories/suggester/suggester.stories.js +8 -12
  261. package/lib/stories/summary/summary.stories.js +5 -7
  262. package/lib/stories/switch/switch.stories.js +7 -9
  263. package/lib/stories/table/table.stories.js +10 -15
  264. package/lib/stories/textarea/textarea.stories.js +5 -7
  265. package/lib/stories/utils/default-arg-types.js +4 -5
  266. package/lib/stories/utils/options.js +5 -9
  267. package/lib/stories/utils/orchestrator.js +10 -10
  268. package/lib/stories/utils/overview.js +2 -3
  269. package/lib/stories/utils/waiting/waiting.js +1 -2
  270. package/lib/test.d.js +3 -0
  271. package/lib/use-lunatic/actions.js +10 -18
  272. package/lib/use-lunatic/commons/check-loops.js +5 -6
  273. package/lib/use-lunatic/commons/compile-controls.js +6 -8
  274. package/lib/use-lunatic/commons/component.js +22 -0
  275. package/lib/use-lunatic/commons/compose.js +1 -2
  276. package/lib/use-lunatic/commons/create-map-pages.js +4 -5
  277. package/lib/use-lunatic/commons/execute-condition-filter.js +2 -11
  278. package/lib/use-lunatic/commons/fill-components/fill-component-expressions.js +6 -8
  279. package/lib/use-lunatic/commons/fill-components/fill-component-value.js +24 -10
  280. package/lib/use-lunatic/commons/fill-components/fill-components.js +5 -5
  281. package/lib/use-lunatic/commons/fill-components/fill-from-state.js +4 -5
  282. package/lib/use-lunatic/commons/fill-components/fill-iterations.js +45 -0
  283. package/lib/use-lunatic/commons/fill-components/fill-management.js +4 -5
  284. package/lib/use-lunatic/commons/fill-components/fill-missing-response.js +10 -18
  285. package/lib/use-lunatic/commons/fill-components/fill-pagination.js +4 -5
  286. package/lib/use-lunatic/commons/fill-components/fill-specific-expression.js +63 -11
  287. package/lib/use-lunatic/commons/get-compatible-vtl-expression.js +3 -3
  288. package/lib/use-lunatic/commons/get-components-from-state.js +1 -2
  289. package/lib/use-lunatic/commons/get-errors-without-empty-value.js +2 -3
  290. package/lib/use-lunatic/commons/getOverview.js +3 -4
  291. package/lib/use-lunatic/commons/index.js +0 -21
  292. package/lib/use-lunatic/commons/is-First-last-page.js +1 -2
  293. package/lib/use-lunatic/commons/is-paginated-loop.js +1 -2
  294. package/lib/use-lunatic/commons/page-navigation.js +4 -4
  295. package/lib/use-lunatic/commons/page-navigation.spec.js +3 -3
  296. package/lib/use-lunatic/commons/page-tag.js +3 -3
  297. package/lib/use-lunatic/commons/use-components-from-state.js +1 -2
  298. package/lib/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js +39 -0
  299. package/lib/use-lunatic/commons/variables/behaviours/missing-behaviour.js +47 -0
  300. package/lib/use-lunatic/commons/variables/behaviours/resizing-behaviour.js +78 -0
  301. package/lib/use-lunatic/commons/variables/get-questionnaire-data.js +65 -0
  302. package/lib/use-lunatic/commons/variables/lunatic-variables-store.js +329 -0
  303. package/lib/use-lunatic/commons/variables/lunatic-variables-store.spec.js +216 -0
  304. package/lib/use-lunatic/initial-state.js +6 -4
  305. package/lib/use-lunatic/lunatic-context.js +3 -6
  306. package/lib/use-lunatic/reducer/commons/auto-explore-loop.js +3 -3
  307. package/lib/use-lunatic/reducer/commons/is-loop-component.js +2 -3
  308. package/lib/use-lunatic/reducer/commons/resize-array-variable.js +1 -2
  309. package/lib/use-lunatic/reducer/commons/validate-condition-filter.js +1 -1
  310. package/lib/use-lunatic/reducer/overview/overview-on-change.js +6 -7
  311. package/lib/use-lunatic/reducer/overview/overview-on-init.js +5 -5
  312. package/lib/use-lunatic/reducer/reduce-go-next-page.js +5 -6
  313. package/lib/use-lunatic/reducer/reduce-go-previous-page.js +4 -5
  314. package/lib/use-lunatic/reducer/reduce-go-to-page.js +4 -5
  315. package/lib/use-lunatic/reducer/reduce-handle-change.js +29 -0
  316. package/lib/use-lunatic/reducer/reduce-on-init.js +93 -186
  317. package/lib/use-lunatic/reducer/reduce-on-set-waiting.js +4 -5
  318. package/lib/use-lunatic/reducer/reduce-update-state.js +3 -3
  319. package/lib/use-lunatic/reducer/reducer.js +3 -4
  320. package/lib/use-lunatic/reducer/resolve-component-controls/resolve-simple-control.js +2 -4
  321. package/lib/use-lunatic/type-source.js +4 -7
  322. package/lib/use-lunatic/use-lunatic.js +23 -20
  323. package/lib/use-lunatic/use-lunatic.test.js +134 -5
  324. package/lib/use-lunatic/use-suggesters.js +6 -7
  325. package/lib/utils/array.js +57 -6
  326. package/lib/utils/array.spec.js +30 -0
  327. package/lib/utils/constants/alphabet.js +1 -2
  328. package/lib/utils/constants/features.js +3 -6
  329. package/lib/utils/constants/links.js +2 -4
  330. package/lib/utils/constants/missing.js +2 -4
  331. package/lib/utils/constants/variable-status.js +5 -10
  332. package/lib/utils/constants/variable-types.js +1 -2
  333. package/lib/utils/env.js +10 -0
  334. package/lib/utils/function.js +1 -2
  335. package/lib/utils/get-component-value.js +3 -9
  336. package/lib/utils/idb-tools/clear-store.js +3 -4
  337. package/lib/utils/idb-tools/create-db-opener.js +1 -2
  338. package/lib/utils/idb-tools/create-open-db.js +1 -2
  339. package/lib/utils/idb-tools/get-entity.js +1 -2
  340. package/lib/utils/idb-tools/get-idb.js +1 -2
  341. package/lib/utils/idb-tools/idb-bulk-insert.js +5 -7
  342. package/lib/utils/idb-tools/index.js +3 -3
  343. package/lib/utils/idb-tools/insert-entity.js +1 -2
  344. package/lib/utils/idb-tools/open-db.js +3 -4
  345. package/lib/utils/idb-tools/open-or-create-db.js +2 -3
  346. package/lib/utils/is-object.js +1 -1
  347. package/lib/utils/logger.js +3 -4
  348. package/lib/utils/number.js +14 -2
  349. package/lib/utils/object.js +1 -1
  350. package/lib/utils/store-tools/clear-store-data.js +3 -4
  351. package/lib/utils/store-tools/clear-store-info.js +3 -4
  352. package/lib/utils/store-tools/constantes.js +7 -14
  353. package/lib/utils/store-tools/create/create.js +3 -4
  354. package/lib/utils/store-tools/create/update-store-info.js +1 -2
  355. package/lib/utils/store-tools/get-store-count.js +1 -2
  356. package/lib/utils/store-tools/index.js +3 -3
  357. package/lib/utils/store-tools/initStore.js +2 -2
  358. package/lib/utils/store-tools/open-or-create-store.js +1 -2
  359. package/lib/utils/store-tools/use-store-index.js +4 -5
  360. package/lib/utils/suggester-workers/append-to-index/append.js +3 -4
  361. package/lib/utils/suggester-workers/append-to-index/append.worker.js +1 -2
  362. package/lib/utils/suggester-workers/append-to-index/prepare-entities.js +5 -6
  363. package/lib/utils/suggester-workers/append-to-index/store-messages.js +4 -5
  364. package/lib/utils/suggester-workers/commons-tokenizer/create-entity-tokenizer.js +4 -5
  365. package/lib/utils/suggester-workers/commons-tokenizer/create-fields-tokenizer.js +5 -6
  366. package/lib/utils/suggester-workers/commons-tokenizer/create-filter-stop-words.js +4 -5
  367. package/lib/utils/suggester-workers/commons-tokenizer/filters/compose-filters.js +1 -2
  368. package/lib/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.js +4 -5
  369. package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-accents.js +1 -2
  370. package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-double.js +1 -2
  371. package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-length.js +1 -2
  372. package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-stemmer.js +1 -2
  373. package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.js +4 -5
  374. package/lib/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.js +1 -2
  375. package/lib/utils/suggester-workers/commons-tokenizer/filters/stop-words.js +1 -2
  376. package/lib/utils/suggester-workers/commons-tokenizer/get-regexp-from-pattern.js +1 -2
  377. package/lib/utils/suggester-workers/commons-tokenizer/get-stemmer.js +1 -2
  378. package/lib/utils/suggester-workers/commons-tokenizer/prepare-string-indexation.js +1 -2
  379. package/lib/utils/suggester-workers/commons-tokenizer/soft-tokenizer.js +1 -2
  380. package/lib/utils/suggester-workers/create-worker-ts.js +2 -3
  381. package/lib/utils/suggester-workers/create-worker.js +2 -3
  382. package/lib/utils/suggester-workers/find-best-label/find-best-label.js +5 -6
  383. package/lib/utils/suggester-workers/find-best-label/tokenize.js +3 -4
  384. package/lib/utils/suggester-workers/searching/compute-score.js +4 -5
  385. package/lib/utils/suggester-workers/searching/get-db.js +3 -4
  386. package/lib/utils/suggester-workers/searching/order/create-alphanumeric-orderer.js +1 -2
  387. package/lib/utils/suggester-workers/searching/order/index.js +1 -2
  388. package/lib/utils/suggester-workers/searching/query-parser/query-parser-soft.js +1 -2
  389. package/lib/utils/suggester-workers/searching/query-parser/query-parser-tokenized.js +1 -2
  390. package/lib/utils/suggester-workers/searching/resolve-query-parser.js +3 -4
  391. package/lib/utils/suggester-workers/searching/search-in-index.js +1 -2
  392. package/lib/utils/suggester-workers/searching/searching.js +5 -6
  393. package/lib/utils/variables.js +37 -0
  394. package/lib/utils/vtl.js +100 -0
  395. package/package.json +28 -16
  396. package/lib/components/loop/utils/get-initial-nb-rows.js +0 -17
  397. package/lib/components/pairwise-links/index.js +0 -13
  398. package/lib/components/pairwise-links/orchestrator.js +0 -71
  399. package/lib/components/pairwise-links/row.js +0 -74
  400. package/lib/components/table/cell.js +0 -89
  401. package/lib/components/table/index.js +0 -13
  402. package/lib/components/table/row.js +0 -40
  403. package/lib/components/table/table-orchestrator.js +0 -35
  404. package/lib/src/components/loop/utils/get-initial-nb-rows.d.ts +0 -4
  405. package/lib/src/components/pairwise-links/index.d.ts +0 -1
  406. package/lib/src/components/pairwise-links/orchestrator.d.ts +0 -6
  407. package/lib/src/components/pairwise-links/row.d.ts +0 -7
  408. package/lib/src/components/table/cell.d.ts +0 -19
  409. package/lib/src/components/table/index.d.ts +0 -1
  410. package/lib/src/components/table/row.d.ts +0 -18
  411. package/lib/src/components/table/table-orchestrator.d.ts +0 -4
  412. package/lib/src/use-lunatic/commons/calculated-variables.d.ts +0 -8
  413. package/lib/src/use-lunatic/commons/execute-expression/create-execute-expression.d.ts +0 -9
  414. package/lib/src/use-lunatic/commons/execute-expression/create-memoizer.d.ts +0 -8
  415. package/lib/src/use-lunatic/commons/execute-expression/create-refresh-calculated.d.ts +0 -24
  416. package/lib/src/use-lunatic/commons/execute-expression/execute-expression.d.ts +0 -11
  417. package/lib/src/use-lunatic/commons/execute-expression/get-expressions-variables.d.ts +0 -7
  418. package/lib/src/use-lunatic/commons/execute-expression/get-expressions-variables.spec.d.ts +0 -1
  419. package/lib/src/use-lunatic/commons/execute-expression/get-safety-expression.d.ts +0 -6
  420. package/lib/src/use-lunatic/commons/execute-expression/index.d.ts +0 -1
  421. package/lib/src/use-lunatic/commons/get-component-value/get-component-value.d.ts +0 -6
  422. package/lib/src/use-lunatic/commons/get-component-value/index.d.ts +0 -1
  423. package/lib/src/use-lunatic/commons/get-data.d.ts +0 -26
  424. package/lib/src/use-lunatic/reducer/reduce-handle-change/index.d.ts +0 -1
  425. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.d.ts +0 -7
  426. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.spec.d.ts +0 -1
  427. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-handle-change.d.ts +0 -4
  428. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-links-variable.d.ts +0 -15
  429. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-missing.d.ts +0 -7
  430. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-resizing.d.ts +0 -4
  431. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-variables-array.d.ts +0 -14
  432. package/lib/src/use-lunatic/reducer/reduce-handle-change/reduce-variables-simple.d.ts +0 -9
  433. package/lib/src/use-lunatic/reducer/reduce-on-init.spec.d.ts +0 -1
  434. package/lib/src/utils/vtl/dataset-builder.d.ts +0 -5
  435. package/lib/src/utils/vtl/index.d.ts +0 -1
  436. package/lib/stories/checkboxGroup/checkboxGroup.stories.js +0 -59
  437. package/lib/stories/checkboxGroup/source.json +0 -402
  438. package/lib/use-lunatic/commons/calculated-variables.js +0 -104
  439. package/lib/use-lunatic/commons/execute-expression/create-execute-expression.js +0 -233
  440. package/lib/use-lunatic/commons/execute-expression/create-execute-expression.spec.js +0 -155
  441. package/lib/use-lunatic/commons/execute-expression/create-memoizer.js +0 -63
  442. package/lib/use-lunatic/commons/execute-expression/create-refresh-calculated.js +0 -149
  443. package/lib/use-lunatic/commons/execute-expression/create-refresh-calculated.spec.js +0 -130
  444. package/lib/use-lunatic/commons/execute-expression/execute-expression.js +0 -90
  445. package/lib/use-lunatic/commons/execute-expression/execute-expression.spec.js +0 -38
  446. package/lib/use-lunatic/commons/execute-expression/get-expressions-variables.js +0 -40
  447. package/lib/use-lunatic/commons/execute-expression/get-expressions-variables.spec.js +0 -31
  448. package/lib/use-lunatic/commons/execute-expression/get-safety-expression.js +0 -35
  449. package/lib/use-lunatic/commons/execute-expression/index.js +0 -13
  450. package/lib/use-lunatic/commons/get-component-value/get-component-value.js +0 -174
  451. package/lib/use-lunatic/commons/get-component-value/index.js +0 -13
  452. package/lib/use-lunatic/commons/get-data.js +0 -80
  453. package/lib/use-lunatic/reducer/reduce-handle-change/__mocks__/source-cleaning-loop.json +0 -792
  454. package/lib/use-lunatic/reducer/reduce-handle-change/index.js +0 -13
  455. package/lib/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.js +0 -72
  456. package/lib/use-lunatic/reducer/reduce-handle-change/reduce-cleaning.spec.js +0 -46
  457. package/lib/use-lunatic/reducer/reduce-handle-change/reduce-handle-change.js +0 -115
  458. package/lib/use-lunatic/reducer/reduce-handle-change/reduce-links-variable.js +0 -89
  459. package/lib/use-lunatic/reducer/reduce-handle-change/reduce-missing.js +0 -88
  460. package/lib/use-lunatic/reducer/reduce-handle-change/reduce-resizing.js +0 -110
  461. package/lib/use-lunatic/reducer/reduce-handle-change/reduce-variables-array.js +0 -44
  462. package/lib/use-lunatic/reducer/reduce-handle-change/reduce-variables-simple.js +0 -28
  463. package/lib/use-lunatic/reducer/reduce-on-init.spec.js +0 -17
  464. package/lib/utils/vtl/dataset-builder.js +0 -27
  465. package/lib/utils/vtl/index.js +0 -13
  466. /package/lib/src/use-lunatic/commons/{execute-expression/create-refresh-calculated.spec.d.ts → variables/lunatic-variables-store.spec.d.ts} +0 -0
  467. /package/lib/src/{use-lunatic/commons/execute-expression/execute-expression.spec.d.ts → utils/array.spec.d.ts} +0 -0
  468. /package/lib/stories/{checkboxGroup → checkbox-group}/sourceComponentset.json +0 -0
  469. /package/lib/stories/{checkboxGroup → checkbox-group}/sourceLoop.json +0 -0
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LunaticVariablesStore = void 0;
7
+ var _vtl = require("../../../utils/vtl");
8
+ var _env = require("../../../utils/env");
9
+ var _variables = require("../../../utils/variables");
10
+ var _resizingBehaviour = require("./behaviours/resizing-behaviour");
11
+ var _cleaningBehaviour = require("./behaviours/cleaning-behaviour");
12
+ var _missingBehaviour = require("./behaviours/missing-behaviour");
13
+ var _array = require("../../../utils/array");
14
+ var _number = require("../../../utils/number");
15
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
16
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
17
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
19
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
20
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (_e) { function e(_x) { return _e.apply(this, arguments); } e.toString = function () { return _e.toString(); }; return e; }(function (e) { throw e; }), f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function (_e2) { function e(_x2) { return _e2.apply(this, arguments); } e.toString = function () { return _e2.toString(); }; return e; }(function (e) { didErr = true; err = e; }), f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
21
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
22
+ 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; }
23
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
25
+ 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; }
26
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
28
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
29
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
30
+ 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); }
31
+ // Interpret counter, used for testing purpose
32
+ var interpretCount = 0;
33
+ var LunaticVariablesStore = exports.LunaticVariablesStore = /*#__PURE__*/function () {
34
+ function LunaticVariablesStore() {
35
+ _classCallCheck(this, LunaticVariablesStore);
36
+ this.dictionary = new Map();
37
+ this.eventTarget = new EventTarget();
38
+ interpretCount = 0;
39
+ }
40
+ _createClass(LunaticVariablesStore, [{
41
+ key: "get",
42
+ value:
43
+ /**
44
+ * Retrieve variable value
45
+ */
46
+ function get(name, iteration) {
47
+ if (!this.dictionary.has(name)) {
48
+ return null;
49
+ }
50
+ return this.dictionary.get(name).getValue(iteration);
51
+ }
52
+
53
+ /**
54
+ * Set variable value
55
+ */
56
+ }, {
57
+ key: "set",
58
+ value: function set(name, value) {
59
+ var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
60
+ if (!this.dictionary.has(name)) {
61
+ this.dictionary.set(name, new LunaticVariable({
62
+ name: name
63
+ }));
64
+ }
65
+ var variable = this.dictionary.get(name);
66
+ if (variable.setValue(value, args.iteration)) {
67
+ this.eventTarget.dispatchEvent(new CustomEvent('change', {
68
+ detail: _objectSpread(_objectSpread({}, args), {}, {
69
+ name: name,
70
+ value: value
71
+ })
72
+ }));
73
+ }
74
+ return variable;
75
+ }
76
+
77
+ /**
78
+ * Register calculated variable
79
+ */
80
+ }, {
81
+ key: "setCalculated",
82
+ value: function setCalculated(name, expression) {
83
+ var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
84
+ dependencies = _ref.dependencies,
85
+ iterationDepth = _ref.iterationDepth;
86
+ if (this.dictionary.has(name)) {
87
+ return this.dictionary.get(name);
88
+ }
89
+ var variable = new LunaticVariable({
90
+ expression: expression,
91
+ dictionary: this.dictionary,
92
+ dependencies: dependencies,
93
+ iterationDepth: iterationDepth,
94
+ name: name
95
+ });
96
+ this.dictionary.set(name, variable);
97
+ return variable;
98
+ }
99
+
100
+ /**
101
+ * Run a VTL expression
102
+ */
103
+ }, {
104
+ key: "run",
105
+ value: function run(expression) {
106
+ var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
107
+ return this.setCalculated(expression, expression, {
108
+ dependencies: args.deps
109
+ }).getValue(args.iteration);
110
+ }
111
+
112
+ /**
113
+ * Bind event listeners
114
+ */
115
+ }, {
116
+ key: "on",
117
+ value: function on(eventName, cb) {
118
+ this.eventTarget.addEventListener(eventName, cb);
119
+ }
120
+
121
+ /**
122
+ * Detach a listener
123
+ */
124
+ }, {
125
+ key: "off",
126
+ value: function off(eventName, cb) {
127
+ this.eventTarget.removeEventListener(eventName, cb);
128
+ }
129
+
130
+ // Retrieve the number of interpret() run (used in testing only)
131
+ }, {
132
+ key: "interpretCount",
133
+ get: function get() {
134
+ return interpretCount;
135
+ }
136
+ }], [{
137
+ key: "makeFromSource",
138
+ value: function makeFromSource(source, data) {
139
+ var _variable$name;
140
+ var store = new LunaticVariablesStore();
141
+ if (!source.variables) {
142
+ return store;
143
+ }
144
+ var initialValues = Object.fromEntries(source.variables.map(function (variable) {
145
+ return [variable.name, (0, _variables.getInitialVariableValue)(variable, data)];
146
+ }));
147
+ var getIterationDepth = function getIterationDepth(name) {
148
+ if (name === 'xAxis') return 0;
149
+ if (name === 'yAxis') return 1;
150
+ return undefined;
151
+ };
152
+ var _iterator = _createForOfIteratorHelper(source.variables),
153
+ _step;
154
+ try {
155
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
156
+ var variable = _step.value;
157
+ switch (variable.variableType) {
158
+ case 'CALCULATED':
159
+ store.setCalculated(variable.name, variable.expression.value, {
160
+ dependencies: variable.bindingDependencies,
161
+ iterationDepth: getIterationDepth(variable.name)
162
+ });
163
+ break;
164
+ case 'COLLECTED':
165
+ case 'EXTERNAL':
166
+ store.set(variable.name, initialValues[(_variable$name = variable.name) !== null && _variable$name !== void 0 ? _variable$name : null]);
167
+ break;
168
+ }
169
+ }
170
+ } catch (err) {
171
+ _iterator.e(err);
172
+ } finally {
173
+ _iterator.f();
174
+ }
175
+ (0, _resizingBehaviour.resizingBehaviour)(store, source.resizing);
176
+ (0, _cleaningBehaviour.cleaningBehaviour)(store, source.cleaning, initialValues);
177
+ (0, _missingBehaviour.missingBehaviour)(store, source.missingBlock);
178
+ return store;
179
+ }
180
+ }]);
181
+ return LunaticVariablesStore;
182
+ }();
183
+ var LunaticVariable = /*#__PURE__*/function () {
184
+ function LunaticVariable() {
185
+ var _args$name;
186
+ var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
187
+ _classCallCheck(this, LunaticVariable);
188
+ // Last time the value was updated (changed)
189
+ this.updatedAt = new Map();
190
+ // Last time "calculation" was run (for calculated variable)
191
+ this.calculatedAt = new Map();
192
+ // Internal value for the variable
193
+ this.value = void 0;
194
+ // List of dependencies, ex: ['FIRSTNAME', 'LASTNAME']
195
+ this.dependencies = void 0;
196
+ // Expression for calculated variable
197
+ this.expression = void 0;
198
+ // Dictionary holding all the available variables
199
+ this.dictionary = void 0;
200
+ // Specific iteration depth to get value from dependencies (used for yAxis for instance)
201
+ this.iterationDepth = void 0;
202
+ // Keep a record of variable name (optional, used for debug)
203
+ this.name = void 0;
204
+ if (args.expression && !args.dictionary) {
205
+ throw new Error("A calculated variable needs a dictionary to retrieve his deps");
206
+ }
207
+ this.expression = args.expression;
208
+ this.dictionary = args.dictionary;
209
+ this.dependencies = args.dependencies;
210
+ this.iterationDepth = args.iterationDepth;
211
+ this.name = (_args$name = args.name) !== null && _args$name !== void 0 ? _args$name : args.expression;
212
+ }
213
+ _createClass(LunaticVariable, [{
214
+ key: "getValue",
215
+ value: function getValue(iteration) {
216
+ // The variable is not calculated
217
+ if (!this.expression) {
218
+ return this.getSavedValue(iteration);
219
+ }
220
+ // Calculate bindings first to refresh "updatedAt" on calculated dependencies
221
+ var bindings = this.getDependenciesValues(iteration);
222
+ if (!this.isOutdated(iteration)) {
223
+ return this.getSavedValue(iteration);
224
+ }
225
+ if ((0, _env.isTestEnv)()) {
226
+ interpretCount++;
227
+ }
228
+ // Remember the value
229
+ try {
230
+ this.setValue((0, _vtl.interpretVTL)(this.expression, bindings), iteration);
231
+ } catch (e) {
232
+ throw new Error("Cannot interpret expression \"".concat(this.expression, "\" with bindings ").concat(JSON.stringify(bindings), ", error : ").concat(e.toString()));
233
+ }
234
+ this.calculatedAt.set(iteration === null || iteration === void 0 ? void 0 : iteration.join('.'), performance.now());
235
+ this.calculatedAt.set(undefined, performance.now());
236
+ return this.getSavedValue(iteration);
237
+ }
238
+
239
+ /**
240
+ * Set the value and returns true if the variable is touched
241
+ */
242
+ }, {
243
+ key: "setValue",
244
+ value: function setValue(value, iteration) {
245
+ var _this = this;
246
+ if (value === this.getSavedValue(iteration)) {
247
+ return false;
248
+ }
249
+ // Decompose arrays, to only update items that changed
250
+ if (Array.isArray(value) && !Array.isArray(iteration)) {
251
+ return !!value.map(function (v, k) {
252
+ return _this.setValue(v, [k]);
253
+ }).find(function (v) {
254
+ return v;
255
+ });
256
+ }
257
+ // We want to save a value at a specific iteration, but the value is not an array yet
258
+ if (iteration !== undefined && !Array.isArray(this.value)) {
259
+ this.value = [];
260
+ }
261
+ this.value = !Array.isArray(iteration) ? value : (0, _array.setAtIndex)(this.value, iteration, value);
262
+ this.updatedAt.set(iteration === null || iteration === void 0 ? void 0 : iteration.join('.'), performance.now());
263
+ this.updatedAt.set(undefined, performance.now());
264
+ return true;
265
+ }
266
+ }, {
267
+ key: "getSavedValue",
268
+ value: function getSavedValue(iteration) {
269
+ if (!Array.isArray(iteration)) {
270
+ return this.value;
271
+ }
272
+ var current = this.value;
273
+ var _iterator2 = _createForOfIteratorHelper(iteration),
274
+ _step2;
275
+ try {
276
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
277
+ var index = _step2.value;
278
+ if (!Array.isArray(current)) {
279
+ return current;
280
+ }
281
+ current = current[index];
282
+ }
283
+ } catch (err) {
284
+ _iterator2.e(err);
285
+ } finally {
286
+ _iterator2.f();
287
+ }
288
+ return current;
289
+ }
290
+ }, {
291
+ key: "getDependencies",
292
+ value: function getDependencies() {
293
+ // Calculate dependencies from expression on the fly if necessary
294
+ if (this.dependencies === undefined) {
295
+ this.dependencies = (0, _vtl.parseVTLVariables)(this.expression);
296
+ }
297
+ return this.dependencies;
298
+ }
299
+ }, {
300
+ key: "getDependenciesValues",
301
+ value: function getDependenciesValues(iteration) {
302
+ var _this2 = this;
303
+ try {
304
+ return Object.fromEntries(this.getDependencies().map(function (dep) {
305
+ var _this2$dictionary;
306
+ var dependencyIteration = (0, _number.isNumber)(_this2.iterationDepth) && Array.isArray(iteration) ? [iteration[_this2.iterationDepth]] : iteration;
307
+ return [dep, (_this2$dictionary = _this2.dictionary) === null || _this2$dictionary === void 0 || (_this2$dictionary = _this2$dictionary.get(dep)) === null || _this2$dictionary === void 0 ? void 0 : _this2$dictionary.getValue(dependencyIteration)];
308
+ }));
309
+ } catch (e) {
310
+ if (e instanceof RangeError) {
311
+ throw new Error("Cannot resolve dependencies for \"".concat(this.expression, "\" with dependencies ").concat(JSON.stringify(this.getDependencies()), " \n ").concat(e.toString()));
312
+ }
313
+ throw e;
314
+ }
315
+ }
316
+ }, {
317
+ key: "isOutdated",
318
+ value: function isOutdated(iteration) {
319
+ var _this3 = this,
320
+ _this$calculatedAt$ge;
321
+ var dependenciesUpdatedAt = Math.max.apply(Math, [0].concat(_toConsumableArray(this.getDependencies().map(function (dep) {
322
+ var _this3$dictionary$get, _this3$dictionary;
323
+ return (_this3$dictionary$get = (_this3$dictionary = _this3.dictionary) === null || _this3$dictionary === void 0 || (_this3$dictionary = _this3$dictionary.get(dep)) === null || _this3$dictionary === void 0 ? void 0 : _this3$dictionary.updatedAt.get(iteration === null || iteration === void 0 ? void 0 : iteration.join('.'))) !== null && _this3$dictionary$get !== void 0 ? _this3$dictionary$get : 0;
324
+ }))));
325
+ return dependenciesUpdatedAt > ((_this$calculatedAt$ge = this.calculatedAt.get(iteration === null || iteration === void 0 ? void 0 : iteration.join('.'))) !== null && _this$calculatedAt$ge !== void 0 ? _this$calculatedAt$ge : -1);
326
+ }
327
+ }]);
328
+ return LunaticVariable;
329
+ }();
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+
3
+ var _vitest = require("vitest");
4
+ var _lunaticVariablesStore = require("./lunatic-variables-store");
5
+ var _resizingBehaviour = require("./behaviours/resizing-behaviour");
6
+ var _cleaningBehaviour = require("./behaviours/cleaning-behaviour");
7
+ var _missingBehaviour = require("./behaviours/missing-behaviour");
8
+ (0, _vitest.describe)('lunatic-variables-store', function () {
9
+ var variables;
10
+ (0, _vitest.beforeEach)(function () {
11
+ variables = new _lunaticVariablesStore.LunaticVariablesStore();
12
+ });
13
+ (0, _vitest.it)('should record basic variables', function () {
14
+ variables.set('FIRSTNAME', 'John');
15
+ (0, _vitest.expect)(variables.get('FIRSTNAME')).toEqual('John');
16
+ });
17
+ (0, _vitest.it)('should run simple types', function () {
18
+ (0, _vitest.expect)(variables.run('"Hello world"')).toEqual('Hello world');
19
+ (0, _vitest.expect)(variables.run('true')).toEqual(true);
20
+ (0, _vitest.expect)(variables.run('2')).toEqual(2);
21
+ });
22
+ (0, _vitest.it)('should handle calculated', function () {
23
+ variables.set('FIRSTNAME', 'John');
24
+ variables.set('LASTNAME', 'Doe');
25
+ variables.setCalculated('FULLNAME', 'FIRSTNAME || " " || LASTNAME', {
26
+ dependencies: ['FIRSTNAME', 'LASTNAME']
27
+ });
28
+ (0, _vitest.expect)(variables.get('FULLNAME')).toEqual('John Doe');
29
+ (0, _vitest.expect)(variables.interpretCount).toBe(1);
30
+ // The result should be cached
31
+ (0, _vitest.expect)(variables.get('FULLNAME')).toEqual('John Doe');
32
+ (0, _vitest.expect)(variables.interpretCount).toBe(1);
33
+ // But refreshed if a variable was updated
34
+ variables.set('FIRSTNAME', 'Jane');
35
+ (0, _vitest.expect)(variables.get('FULLNAME')).toEqual('Jane Doe');
36
+ (0, _vitest.expect)(variables.interpretCount).toBe(2);
37
+ });
38
+ (0, _vitest.it)('should handle deep calculation', function () {
39
+ variables.set('FIRSTNAME', 'John');
40
+ variables.set('LASTNAME', 'Doe');
41
+ variables.set('AGE', '18');
42
+ variables.setCalculated('FULLNAME', 'FIRSTNAME || " " || LASTNAME', {
43
+ dependencies: ['FIRSTNAME', 'LASTNAME']
44
+ });
45
+ variables.setCalculated('LABEL', 'FULLNAME || " is " || AGE', {
46
+ dependencies: ['FULLNAME', 'AGE']
47
+ });
48
+ (0, _vitest.expect)(variables.get('LABEL')).toEqual('John Doe is 18');
49
+ (0, _vitest.expect)(variables.interpretCount).toBe(2);
50
+ variables.set('AGE', '20');
51
+ (0, _vitest.expect)(variables.get('LABEL')).toEqual('John Doe is 20');
52
+ (0, _vitest.expect)(variables.interpretCount).toBe(3);
53
+ variables.set('FIRSTNAME', 'Jane');
54
+ (0, _vitest.expect)(variables.get('LABEL')).toEqual('Jane Doe is 20');
55
+ (0, _vitest.expect)(variables.interpretCount).toBe(5);
56
+ variables.get('LABEL');
57
+ (0, _vitest.expect)(variables.interpretCount).toBe(5);
58
+ });
59
+ (0, _vitest.it)('should handle dependencies resolution', function () {
60
+ variables.set('FIRSTNAME', 'John');
61
+ variables.set('LASTNAME', 'Doe');
62
+ variables.setCalculated('FULLNAME', 'FIRSTNAME || " " || LASTNAME');
63
+ (0, _vitest.expect)(variables.get('FULLNAME')).toEqual('John Doe');
64
+ variables.set('FIRSTNAME', 'Jane');
65
+ (0, _vitest.expect)(variables.get('FULLNAME')).toEqual('Jane Doe');
66
+ });
67
+ (0, _vitest.it)('should run expression on the fly', function () {
68
+ variables.set('FIRSTNAME', 'John');
69
+ variables.set('LASTNAME', 'Doe');
70
+ (0, _vitest.expect)(variables.run('FIRSTNAME || " " || LASTNAME')).toEqual('John Doe');
71
+ (0, _vitest.expect)(variables.run('FIRSTNAME || " " || LASTNAME')).toEqual('John Doe');
72
+ (0, _vitest.expect)(variables.interpretCount).toBe(1);
73
+ variables.set('FIRSTNAME', 'Jane');
74
+ (0, _vitest.expect)(variables.run('FIRSTNAME || " " || LASTNAME')).toEqual('Jane Doe');
75
+ });
76
+ (0, _vitest.describe)('with iteration', function () {
77
+ (0, _vitest.it)('should handle arrays', function () {
78
+ variables.set('FIRSTNAME', ['John', 'Jane']);
79
+ (0, _vitest.expect)(variables.get('FIRSTNAME')).toEqual(['John', 'Jane']);
80
+ (0, _vitest.expect)(variables.get('FIRSTNAME', [0])).toEqual('John');
81
+ (0, _vitest.expect)(variables.get('FIRSTNAME', [1])).toEqual('Jane');
82
+ });
83
+ (0, _vitest.it)('should handle setting at a specific index', function () {
84
+ variables.set('FIRSTNAME', ['John', 'Jane']);
85
+ variables.set('LASTNAME', null);
86
+ variables.set('FIRSTNAME', 'Marc', {
87
+ iteration: [1]
88
+ });
89
+ (0, _vitest.expect)(variables.get('FIRSTNAME')).toEqual(['John', 'Marc']);
90
+ variables.set('LASTNAME', 'Doe', {
91
+ iteration: [1]
92
+ });
93
+ (0, _vitest.expect)(variables.get('LASTNAME')).toEqual([null, 'Doe']);
94
+ });
95
+ (0, _vitest.it)('should ignore non array values', function () {
96
+ variables.set('FIRSTNAME', 'John');
97
+ (0, _vitest.expect)(variables.get('FIRSTNAME', [0])).toEqual('John');
98
+ });
99
+ (0, _vitest.it)('should handle iteration in calculation', function () {
100
+ variables.set('FIRSTNAME', ['John', 'Jane']);
101
+ variables.set('LASTNAME', ['Doe', 'Dae']);
102
+ variables.setCalculated('FULLNAME', 'FIRSTNAME || " " || LASTNAME', {
103
+ dependencies: ['FIRSTNAME', 'LASTNAME']
104
+ });
105
+ (0, _vitest.expect)(variables.get('FULLNAME', [0])).toEqual('John Doe');
106
+ (0, _vitest.expect)(variables.get('FULLNAME', [1])).toEqual('Jane Dae');
107
+ (0, _vitest.expect)(variables.interpretCount).toBe(2);
108
+ (0, _vitest.expect)(variables.get('FULLNAME', [0])).toEqual('John Doe');
109
+ (0, _vitest.expect)(variables.get('FULLNAME', [1])).toEqual('Jane Dae');
110
+ (0, _vitest.expect)(variables.interpretCount).toBe(2);
111
+ (0, _vitest.expect)(variables.get('FULLNAME', [0])).toEqual('John Doe');
112
+ variables.set('FIRSTNAME', ['John', 'Marc']);
113
+ (0, _vitest.expect)(variables.get('FULLNAME', [0])).toEqual('John Doe');
114
+ (0, _vitest.expect)(variables.get('FULLNAME', [1])).toEqual('Marc Dae');
115
+ // Only the second iteration should be calculated
116
+ (0, _vitest.expect)(variables.interpretCount).toBe(3);
117
+ });
118
+ (0, _vitest.it)('should handle aggregation expression', function () {
119
+ variables.set('FIRSTNAME', ['John', 'Jane']);
120
+ (0, _vitest.expect)(variables.run('count(FIRSTNAME)')).toEqual(2);
121
+ variables.set('FIRSTNAME', ['John', 'Jane', 'Marc']);
122
+ (0, _vitest.expect)(variables.run('count(FIRSTNAME)')).toEqual(3);
123
+ });
124
+ (0, _vitest.it)('should handle non array values', function () {
125
+ variables.set('FIRSTNAME', ['John', 'Jane']);
126
+ variables.set('LASTNAME', 'Doe');
127
+ (0, _vitest.expect)(variables.run('FIRSTNAME || " " || LASTNAME', {
128
+ iteration: [0]
129
+ })).toEqual('John Doe');
130
+ (0, _vitest.expect)(variables.run('FIRSTNAME || " " || LASTNAME', {
131
+ iteration: [1]
132
+ })).toEqual('Jane Doe');
133
+ });
134
+ });
135
+ (0, _vitest.describe)('resizing', function () {
136
+ (0, _vitest.it)('should resize variables', function () {
137
+ variables.set('PRENOM', ['John', 'Jane']);
138
+ variables.set('NOM', ['Doe']);
139
+ (0, _resizingBehaviour.resizingBehaviour)(variables, {
140
+ PRENOM: {
141
+ size: 'count(PRENOM)',
142
+ variables: ['NOM']
143
+ }
144
+ });
145
+ variables.set('PRENOM', ['John', 'Jane', 'Marc']);
146
+ (0, _vitest.expect)(variables.get('PRENOM').length).toEqual(3);
147
+ (0, _vitest.expect)(variables.get('NOM').length).toEqual(3);
148
+ });
149
+ });
150
+ (0, _vitest.describe)('cleaning', function () {
151
+ (0, _vitest.it)('should clean variables', function () {
152
+ variables.set('PRENOM', 'John');
153
+ variables.set('NOM', 'Doe');
154
+ variables.set('READY', true);
155
+ (0, _cleaningBehaviour.cleaningBehaviour)(variables, {
156
+ READY: {
157
+ PRENOM: 'READY'
158
+ }
159
+ });
160
+ (0, _vitest.expect)(variables.get('PRENOM')).toEqual('John');
161
+ variables.set('READY', false);
162
+ (0, _vitest.expect)(variables.get('PRENOM')).toEqual(null);
163
+ });
164
+ (0, _vitest.it)('should clean variables with initial values', function () {
165
+ variables.set('PRENOM', 'John');
166
+ variables.set('READY', true);
167
+ (0, _cleaningBehaviour.cleaningBehaviour)(variables, {
168
+ READY: {
169
+ PRENOM: 'READY'
170
+ }
171
+ }, {
172
+ PRENOM: 'Jane'
173
+ });
174
+ variables.set('READY', false);
175
+ (0, _vitest.expect)(variables.get('PRENOM')).toEqual('Jane');
176
+ });
177
+ (0, _vitest.it)('should clean variables at a specific iteration', function () {
178
+ variables.set('PRENOM', ['John', 'Jane', 'Marc']);
179
+ variables.set('READY', [true, true, true]);
180
+ (0, _cleaningBehaviour.cleaningBehaviour)(variables, {
181
+ READY: {
182
+ PRENOM: 'READY'
183
+ }
184
+ });
185
+ variables.set('READY', false, {
186
+ iteration: [1]
187
+ });
188
+ (0, _vitest.expect)(variables.get('PRENOM')).toEqual(['John', null, 'Marc']);
189
+ });
190
+ });
191
+ (0, _vitest.describe)('missing', function () {
192
+ (0, _vitest.beforeEach)(function () {
193
+ (0, _missingBehaviour.missingBehaviour)(variables, {
194
+ PRENOM: ['PRENOM_MISSING'],
195
+ PRENOM_MISSING: ['PRENOM']
196
+ });
197
+ });
198
+ (0, _vitest.it)('should handle missing', function () {
199
+ variables.set('PRENOM', 'John');
200
+ (0, _vitest.expect)(variables.get('PRENOM')).toEqual('John');
201
+ (0, _vitest.expect)(variables.get('PRENOM_MISSING')).toEqual(null);
202
+ variables.set('PRENOM_MISSING', 'DK');
203
+ (0, _vitest.expect)(variables.get('PRENOM')).toEqual(null);
204
+ (0, _vitest.expect)(variables.get('PRENOM_MISSING')).toEqual('DK');
205
+ });
206
+ (0, _vitest.it)('should handle missing for iteration', function () {
207
+ variables.set('PRENOM', ['John', 'Jane', 'Marc']);
208
+ (0, _vitest.expect)(variables.get('PRENOM_MISSING')).toEqual(null);
209
+ variables.set('PRENOM_MISSING', 'DK', {
210
+ iteration: [1]
211
+ });
212
+ (0, _vitest.expect)(variables.get('PRENOM')).toEqual(['John', null, 'Marc']);
213
+ (0, _vitest.expect)(variables.get('PRENOM_MISSING', [1])).toEqual('DK');
214
+ });
215
+ });
216
+ });
@@ -6,9 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports["default"] = void 0;
7
7
  var _constants = require("../utils/constants");
8
8
  var _useSuggesters = require("./use-suggesters");
9
+ var _lunaticVariablesStore = require("./commons/variables/lunatic-variables-store");
10
+ var _env = require("../utils/env");
9
11
  var INITIAL_STATE = {
10
- variables: {},
11
- // map des variables du questionnaires
12
+ updatedAt: 0,
13
+ // There is a bug with this constructor in vitest
14
+ variables: (0, _env.isTestEnv)() ? null : new _lunaticVariablesStore.LunaticVariablesStore(),
12
15
  pages: {},
13
16
  isInLoop: false,
14
17
  isFirstPage: false,
@@ -47,5 +50,4 @@ var INITIAL_STATE = {
47
50
  };
48
51
  }
49
52
  };
50
- var _default = INITIAL_STATE;
51
- exports["default"] = _default;
53
+ var _default = exports["default"] = INITIAL_STATE;
@@ -24,7 +24,7 @@ var LunaticContext = /*#__PURE__*/(0, _react.createContext)({
24
24
  });
25
25
  /** Provide `missing` `missingStrategy`, `shortcut` and `missingShortcut`, `dontKnowButton`, `refusedButton` to Missing component
26
26
  * to manage non-response buttons and shortcut */
27
- var useLunaticMissing = function useLunaticMissing() {
27
+ var useLunaticMissing = exports.useLunaticMissing = function useLunaticMissing() {
28
28
  var _useContext = (0, _react.useContext)(LunaticContext),
29
29
  missing = _useContext.missing,
30
30
  missingStrategy = _useContext.missingStrategy,
@@ -43,17 +43,14 @@ var useLunaticMissing = function useLunaticMissing() {
43
43
  };
44
44
 
45
45
  /** Return custom elements list to override native components */
46
- exports.useLunaticMissing = useLunaticMissing;
47
- var useLunaticCustom = function useLunaticCustom() {
46
+ var useLunaticCustom = exports.useLunaticCustom = function useLunaticCustom() {
48
47
  return (0, _react.useContext)(LunaticContext).custom;
49
48
  };
50
49
 
51
50
  /** Provide `management` to display data states [COLLECTED,EDITED,FORCED] */
52
- exports.useLunaticCustom = useLunaticCustom;
53
- var useLunaticManagement = function useLunaticManagement() {
51
+ var useLunaticManagement = exports.useLunaticManagement = function useLunaticManagement() {
54
52
  return (0, _react.useContext)(LunaticContext).management;
55
53
  };
56
- exports.useLunaticManagement = useLunaticManagement;
57
54
  function createLunaticProvider(_ref) {
58
55
  var custom = _ref.custom,
59
56
  management = _ref.management,
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.autoExploreLoop = autoExploreLoop;
7
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; }
8
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
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
12
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
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); }
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.isLoopComponent = void 0;
7
- var isLoopComponent = function isLoopComponent(component) {
7
+ var isLoopComponent = exports.isLoopComponent = function isLoopComponent(component) {
8
8
  return ['Loop', 'RosterForLoop'].includes(component.componentType);
9
- };
10
- exports.isLoopComponent = isLoopComponent;
9
+ };
@@ -28,5 +28,4 @@ function resizeArrayVariable(array, length, defaultValue) {
28
28
  }
29
29
  return array;
30
30
  }
31
- var _default = resizeArrayVariable;
32
- exports["default"] = _default;
31
+ var _default = exports["default"] = resizeArrayVariable;
@@ -9,7 +9,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
9
9
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
10
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
11
11
  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; }
12
- 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; } }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
14
  function validateLoopConditionFilter(state, _ref) {
15
15
  var next = _ref.next,