@inseefr/lunatic 3.5.0-rc.0 → 3.5.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 (392) hide show
  1. package/components/Datepicker/Datepicker.js +1 -1
  2. package/components/Datepicker/Datepicker.js.map +1 -1
  3. package/components/Duration/Duration.js +3 -2
  4. package/components/Duration/Duration.js.map +1 -1
  5. package/components/Input/Input.js +6 -3
  6. package/components/Input/Input.js.map +1 -1
  7. package/components/Input/Input.spec.js +25 -0
  8. package/components/Input/Input.spec.js.map +1 -1
  9. package/components/InputNumber/InputNumber.js +1 -1
  10. package/components/InputNumber/InputNumber.js.map +1 -1
  11. package/components/InputNumber/InputNumber.spec.js +9 -1
  12. package/components/InputNumber/InputNumber.spec.js.map +1 -1
  13. package/components/InputNumber/InputNumberThousand.d.ts +2 -1
  14. package/components/InputNumber/InputNumberThousand.js +8 -2
  15. package/components/InputNumber/InputNumberThousand.js.map +1 -1
  16. package/components/Loop/Loop.js +1 -1
  17. package/components/Loop/Loop.js.map +1 -1
  18. package/components/Loop/Loop.spec.d.ts +1 -0
  19. package/components/Loop/Loop.spec.js +39 -0
  20. package/components/Loop/Loop.spec.js.map +1 -0
  21. package/components/Roundabout/CustomRoundabout.d.ts +1 -1
  22. package/components/Roundabout/CustomRoundabout.js +4 -3
  23. package/components/Roundabout/CustomRoundabout.js.map +1 -1
  24. package/components/Roundabout/roundabout.spec.js +3 -1
  25. package/components/Roundabout/roundabout.spec.js.map +1 -1
  26. package/components/Textarea/Textarea.js +4 -1
  27. package/components/Textarea/Textarea.js.map +1 -1
  28. package/components/Textarea/Textarea.spec.js +13 -0
  29. package/components/Textarea/Textarea.spec.js.map +1 -1
  30. package/components/shared/CharactersCount/CharactersCount.d.ts +7 -0
  31. package/components/shared/CharactersCount/CharactersCount.js +20 -0
  32. package/components/shared/CharactersCount/CharactersCount.js.map +1 -0
  33. package/components/shared/CharactersCount/CharactersCount.spec.d.ts +1 -0
  34. package/components/shared/CharactersCount/CharactersCount.spec.js +28 -0
  35. package/components/shared/CharactersCount/CharactersCount.spec.js.map +1 -0
  36. package/components/shared/Label/Label.js +1 -1
  37. package/components/shared/Label/Label.js.map +1 -1
  38. package/components/shared/Label/Label.spec.js +11 -3
  39. package/components/shared/Label/Label.spec.js.map +1 -1
  40. package/components/shared/utils/getCharactersCountId.d.ts +4 -0
  41. package/components/shared/utils/getCharactersCountId.js +10 -0
  42. package/components/shared/utils/getCharactersCountId.js.map +1 -0
  43. package/components/type.d.ts +1 -0
  44. package/esm/components/Datepicker/Datepicker.js +1 -1
  45. package/esm/components/Datepicker/Datepicker.js.map +1 -1
  46. package/esm/components/Duration/Duration.js +3 -2
  47. package/esm/components/Duration/Duration.js.map +1 -1
  48. package/esm/components/Input/Input.js +6 -3
  49. package/esm/components/Input/Input.js.map +1 -1
  50. package/esm/components/Input/Input.spec.js +25 -0
  51. package/esm/components/Input/Input.spec.js.map +1 -1
  52. package/esm/components/InputNumber/InputNumber.js +1 -1
  53. package/esm/components/InputNumber/InputNumber.js.map +1 -1
  54. package/esm/components/InputNumber/InputNumber.spec.js +9 -1
  55. package/esm/components/InputNumber/InputNumber.spec.js.map +1 -1
  56. package/esm/components/InputNumber/InputNumberThousand.d.ts +2 -1
  57. package/esm/components/InputNumber/InputNumberThousand.js +8 -2
  58. package/esm/components/InputNumber/InputNumberThousand.js.map +1 -1
  59. package/esm/components/Loop/Loop.js +1 -1
  60. package/esm/components/Loop/Loop.js.map +1 -1
  61. package/esm/components/Loop/Loop.spec.d.ts +1 -0
  62. package/esm/components/Loop/Loop.spec.js +37 -0
  63. package/esm/components/Loop/Loop.spec.js.map +1 -0
  64. package/esm/components/Roundabout/CustomRoundabout.d.ts +1 -1
  65. package/esm/components/Roundabout/CustomRoundabout.js +4 -3
  66. package/esm/components/Roundabout/CustomRoundabout.js.map +1 -1
  67. package/esm/components/Roundabout/roundabout.spec.js +3 -1
  68. package/esm/components/Roundabout/roundabout.spec.js.map +1 -1
  69. package/esm/components/Textarea/Textarea.js +4 -1
  70. package/esm/components/Textarea/Textarea.js.map +1 -1
  71. package/esm/components/Textarea/Textarea.spec.js +13 -0
  72. package/esm/components/Textarea/Textarea.spec.js.map +1 -1
  73. package/esm/components/shared/CharactersCount/CharactersCount.d.ts +7 -0
  74. package/esm/components/shared/CharactersCount/CharactersCount.js +15 -0
  75. package/esm/components/shared/CharactersCount/CharactersCount.js.map +1 -0
  76. package/esm/components/shared/CharactersCount/CharactersCount.spec.d.ts +1 -0
  77. package/esm/components/shared/CharactersCount/CharactersCount.spec.js +26 -0
  78. package/esm/components/shared/CharactersCount/CharactersCount.spec.js.map +1 -0
  79. package/esm/components/shared/Label/Label.js +1 -1
  80. package/esm/components/shared/Label/Label.js.map +1 -1
  81. package/esm/components/shared/Label/Label.spec.js +11 -3
  82. package/esm/components/shared/Label/Label.spec.js.map +1 -1
  83. package/esm/components/shared/utils/getCharactersCountId.d.ts +4 -0
  84. package/esm/components/shared/utils/getCharactersCountId.js +7 -0
  85. package/esm/components/shared/utils/getCharactersCountId.js.map +1 -0
  86. package/esm/components/type.d.ts +1 -0
  87. package/esm/main.css +20 -0
  88. package/esm/main.css.map +1 -1
  89. package/esm/stories/overview/sourceWithHierarchy.json +5151 -0
  90. package/esm/tests/utils/lunatic.d.ts +0 -4
  91. package/esm/tests/utils/lunatic.js +0 -4
  92. package/esm/tests/utils/lunatic.js.map +1 -1
  93. package/esm/type.source.d.ts +6 -6
  94. package/esm/type.source.js +0 -1
  95. package/esm/type.source.js.map +1 -1
  96. package/esm/use-lunatic/commons/page.js +8 -0
  97. package/esm/use-lunatic/commons/page.js.map +1 -1
  98. package/esm/use-lunatic/commons/variables/behaviours/cleaning-behaviour.d.ts +1 -1
  99. package/esm/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js +111 -14
  100. package/esm/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js.map +1 -1
  101. package/esm/use-lunatic/commons/variables/get-questionnaire-data.js +0 -8
  102. package/esm/use-lunatic/commons/variables/get-questionnaire-data.js.map +1 -1
  103. package/esm/use-lunatic/commons/variables/lunatic-variables-store.d.ts +2 -2
  104. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js +5 -3
  105. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  106. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js +164 -8
  107. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  108. package/esm/use-lunatic/hooks/use-page-has-response.js +50 -35
  109. package/esm/use-lunatic/hooks/use-page-has-response.js.map +1 -1
  110. package/esm/use-lunatic/hooks/useOverview.d.ts +1 -1
  111. package/esm/use-lunatic/hooks/useOverview.js +19 -14
  112. package/esm/use-lunatic/hooks/useOverview.js.map +1 -1
  113. package/esm/use-lunatic/hooks/useOverview.spec.d.ts +1 -0
  114. package/esm/use-lunatic/hooks/useOverview.spec.js +38 -0
  115. package/esm/use-lunatic/hooks/useOverview.spec.js.map +1 -0
  116. package/esm/use-lunatic/props/getComponentTypeProps.d.ts +1 -0
  117. package/esm/use-lunatic/props/propValue.js +18 -6
  118. package/esm/use-lunatic/props/propValue.js.map +1 -1
  119. package/esm/use-lunatic/props/propValue.spec.js +97 -2
  120. package/esm/use-lunatic/props/propValue.spec.js.map +1 -1
  121. package/esm/use-lunatic/reducer/reducerInitializer.d.ts +2 -2
  122. package/esm/use-lunatic/reducer/reducerInitializer.js +25 -32
  123. package/esm/use-lunatic/reducer/reducerInitializer.js.map +1 -1
  124. package/esm/use-lunatic/test.utils.d.ts +2 -0
  125. package/esm/use-lunatic/test.utils.js +13 -0
  126. package/esm/use-lunatic/test.utils.js.map +1 -0
  127. package/esm/use-lunatic/type.d.ts +0 -4
  128. package/esm/use-lunatic/use-lunatic.d.ts +1 -2
  129. package/esm/use-lunatic/use-lunatic.js.map +1 -1
  130. package/esm/utils/cast.d.ts +19 -0
  131. package/esm/utils/cast.js +63 -0
  132. package/esm/utils/cast.js.map +1 -0
  133. package/esm/utils/constants/variable-status.d.ts +0 -4
  134. package/esm/utils/constants/variable-status.js +0 -4
  135. package/esm/utils/constants/variable-status.js.map +1 -1
  136. package/esm/utils/variables.spec.js +0 -8
  137. package/esm/utils/variables.spec.js.map +1 -1
  138. package/main.css +20 -0
  139. package/main.css.map +1 -1
  140. package/package.json +61 -69
  141. package/src/components/Datepicker/Datepicker.tsx +1 -1
  142. package/src/components/Datepicker/__snapshots__/Datepicker.spec.tsx.snap +2 -2
  143. package/src/components/Duration/Duration.test.tsx +52 -0
  144. package/src/components/Duration/Duration.tsx +17 -4
  145. package/src/components/Input/Input.spec.tsx +34 -0
  146. package/src/components/Input/Input.tsx +26 -18
  147. package/src/components/Input/__snapshots__/Input.spec.tsx.snap +38 -19
  148. package/src/components/InputNumber/InputNumber.spec.tsx +15 -1
  149. package/src/components/InputNumber/InputNumber.tsx +1 -0
  150. package/src/components/InputNumber/InputNumberThousand.tsx +11 -1
  151. package/src/components/Loop/Loop.spec.tsx +77 -0
  152. package/src/components/Loop/Loop.tsx +1 -1
  153. package/src/components/RosterForLoop/__snapshots__/RosterForLoop.spec.tsx.snap +42 -20
  154. package/src/components/Roundabout/CustomRoundabout.tsx +13 -4
  155. package/src/components/Roundabout/roundabout.spec.tsx +3 -0
  156. package/src/components/Textarea/Textarea.spec.tsx +18 -0
  157. package/src/components/Textarea/Textarea.tsx +21 -13
  158. package/src/components/Textarea/__snapshots__/Textarea.spec.tsx.snap +21 -11
  159. package/src/components/shared/CharactersCount/CharactersCount.spec.tsx +31 -0
  160. package/src/components/shared/CharactersCount/CharactersCount.tsx +27 -0
  161. package/src/components/shared/Label/Label.spec.tsx +15 -3
  162. package/src/components/shared/Label/Label.tsx +1 -1
  163. package/src/components/shared/utils/getCharactersCountId.test.ts +14 -0
  164. package/src/components/shared/utils/getCharactersCountId.ts +6 -0
  165. package/src/components/type.ts +1 -0
  166. package/src/css/components/Input.scss +10 -0
  167. package/src/css/components/Roundabout.scss +10 -0
  168. package/src/stories/accordion/source.json +1 -5
  169. package/src/stories/behaviour/cleaning/cleaning.stories.jsx +11 -0
  170. package/src/stories/behaviour/cleaning/loop.json +246 -0
  171. package/src/stories/behaviour/cleaning/source-loop.json +3 -15
  172. package/src/stories/behaviour/cleaning/source.json +2 -10
  173. package/src/stories/behaviour/controls/boucles-n.json +2 -10
  174. package/src/stories/behaviour/controls/loop.json +2 -10
  175. package/src/stories/behaviour/controls/roundabout.json +3 -15
  176. package/src/stories/behaviour/controls/simple-numeric.json +19 -95
  177. package/src/stories/behaviour/controls/simple.json +7 -35
  178. package/src/stories/behaviour/filter/dataLoop.json +0 -8
  179. package/src/stories/behaviour/filter/source.json +0 -12
  180. package/src/stories/behaviour/filter/sourceLoop.json +0 -12
  181. package/src/stories/behaviour/missing/source.json +12 -60
  182. package/src/stories/behaviour/others/V2_DeclarationsSimples.json +14 -70
  183. package/src/stories/behaviour/others/V2_MinMaxSum_Boucles.json +5 -25
  184. package/src/stories/behaviour/others/V2_QuestSimple_Boucles.json +107 -535
  185. package/src/stories/behaviour/others/V2_TCMRallyeGames.json +33 -165
  186. package/src/stories/behaviour/others/test-dylan.json +5 -25
  187. package/src/stories/behaviour/paste/source.json +1 -5
  188. package/src/stories/behaviour/performance/performance.stories.jsx +9 -1
  189. package/src/stories/behaviour/performance/source.json +4 -20
  190. package/src/stories/behaviour/performance/srcv.json +44747 -0
  191. package/src/stories/behaviour/resizing/source-resizing-cleaning.json +2 -10
  192. package/src/stories/behaviour/resizing/source.json +5 -25
  193. package/src/stories/checkbox-boolean/source.json +1 -5
  194. package/src/stories/checkbox-group/source.json +16 -80
  195. package/src/stories/checkbox-group/sourceCondition.json +3 -15
  196. package/src/stories/checkbox-group/sourceDetail.json +18 -90
  197. package/src/stories/checkbox-group/sourceLoop.json +2 -10
  198. package/src/stories/checkbox-one/source.json +1 -5
  199. package/src/stories/checkbox-one/sourceDetail.json +2 -10
  200. package/src/stories/date-picker/source.json +1 -5
  201. package/src/stories/declaration/source.json +2 -10
  202. package/src/stories/disabled/data.json +0 -16
  203. package/src/stories/disabled/source.json +7 -35
  204. package/src/stories/dropdown/data.json +2 -10
  205. package/src/stories/dropdown/source.json +2 -10
  206. package/src/stories/duration/mois.json +1 -5
  207. package/src/stories/duration/time.json +1 -5
  208. package/src/stories/filter-description/source-options.json +3 -15
  209. package/src/stories/input/source.json +1 -5
  210. package/src/stories/input-number/input-number.stories.jsx +5 -0
  211. package/src/stories/input-number/source-big-number.json +27 -0
  212. package/src/stories/input-number/source-euro.json +2 -6
  213. package/src/stories/input-number/source.json +1 -5
  214. package/src/stories/loop/source-bloc.json +2 -10
  215. package/src/stories/loop/source-paginated.json +2 -10
  216. package/src/stories/loop/source-roster.json +2 -10
  217. package/src/stories/loop/source-with-header.json +2 -10
  218. package/src/stories/overview/dataLoop.json +24 -120
  219. package/src/stories/overview/overview.stories.jsx +9 -0
  220. package/src/stories/overview/source.json +1 -5
  221. package/src/stories/overview/sourceLoop.json +24 -120
  222. package/src/stories/overview/sourceWithHierarchy.json +164 -820
  223. package/src/stories/pairwise/source.json +5 -25
  224. package/src/stories/question/source.json +2 -10
  225. package/src/stories/questionnaires/logement/data.json +0 -1288
  226. package/src/stories/questionnaires/logement/source-sequence.json +564 -2820
  227. package/src/stories/questionnaires/logement/source-sum.json +280 -1400
  228. package/src/stories/questionnaires/logement/source.json +564 -2820
  229. package/src/stories/questionnaires/recensement/source.json +106 -530
  230. package/src/stories/questionnaires/rp/source.json +8 -40
  231. package/src/stories/questionnaires/simpsons/source.json +104 -520
  232. package/src/stories/radio/source.json +1 -5
  233. package/src/stories/radio/sourceCondition.json +2 -10
  234. package/src/stories/radio/sourceDetail.json +2 -10
  235. package/src/stories/radio/sourceHorizontal.json +1 -5
  236. package/src/stories/roundabout/data1.json +0 -12
  237. package/src/stories/roundabout/data2.json +0 -16
  238. package/src/stories/roundabout/source.json +11 -35
  239. package/src/stories/suggester/source-arbitrary-response.json +6 -30
  240. package/src/stories/suggester/source-error.json +6 -30
  241. package/src/stories/suggester/source-multiline.json +0 -16
  242. package/src/stories/suggester/source-option-responses.json +5 -25
  243. package/src/stories/suggester/source.json +7 -35
  244. package/src/stories/summary/data.json +0 -16
  245. package/src/stories/summary/source.json +7 -35
  246. package/src/stories/switch/data-forced.json +2 -10
  247. package/src/stories/switch/source.json +4 -20
  248. package/src/stories/table/source-colspan.json +8 -40
  249. package/src/stories/table/table-dynamique.json +1 -5
  250. package/src/stories/text/source-roster.json +3 -15
  251. package/src/stories/text/source-table.json +9 -45
  252. package/src/stories/textarea/source.json +1 -5
  253. package/src/stories/utils/{SchemaValidator.tsx → SchemaValidator.jsx} +1 -1
  254. package/src/stories/utils/{orchestrator.tsx → orchestrator.jsx} +9 -13
  255. package/src/stories/utils/{overview.tsx → overview.jsx} +0 -2
  256. package/src/tests/utils/lunatic.ts +0 -4
  257. package/src/type.source.ts +8 -7
  258. package/src/use-lunatic/__snapshots__/use-lunatic.test.ts.snap +0 -1159
  259. package/src/use-lunatic/commons/page.ts +10 -0
  260. package/src/use-lunatic/commons/variables/behaviours/cleaning-behaviour.ts +182 -24
  261. package/src/use-lunatic/commons/variables/get-questionnaire-data.ts +0 -12
  262. package/src/use-lunatic/commons/variables/lunatic-variables-store.spec.ts +190 -8
  263. package/src/use-lunatic/commons/variables/lunatic-variables-store.ts +7 -4
  264. package/src/use-lunatic/hooks/use-page-has-response.test.ts +200 -0
  265. package/src/use-lunatic/hooks/use-page-has-response.ts +67 -44
  266. package/src/use-lunatic/hooks/useOverview.spec.ts +42 -0
  267. package/src/use-lunatic/hooks/useOverview.ts +41 -18
  268. package/src/use-lunatic/props/propValue.spec.ts +105 -2
  269. package/src/use-lunatic/props/propValue.ts +26 -8
  270. package/src/use-lunatic/reducer/reducerInitializer.tsx +31 -41
  271. package/src/use-lunatic/test.utils.ts +17 -0
  272. package/src/use-lunatic/type.ts +0 -4
  273. package/src/use-lunatic/use-lunatic.test.ts +2 -21
  274. package/src/use-lunatic/use-lunatic.ts +5 -4
  275. package/src/utils/cast.ts +67 -0
  276. package/src/utils/constants/variable-status.ts +0 -4
  277. package/src/utils/variables.spec.ts +0 -8
  278. package/stories/overview/sourceWithHierarchy.json +5151 -0
  279. package/tests/utils/lunatic.d.ts +0 -4
  280. package/tests/utils/lunatic.js +0 -4
  281. package/tests/utils/lunatic.js.map +1 -1
  282. package/tsconfig.build.tsbuildinfo +1 -1
  283. package/type.source.d.ts +6 -6
  284. package/type.source.js +0 -1
  285. package/type.source.js.map +1 -1
  286. package/use-lunatic/commons/page.js +8 -0
  287. package/use-lunatic/commons/page.js.map +1 -1
  288. package/use-lunatic/commons/variables/behaviours/cleaning-behaviour.d.ts +1 -1
  289. package/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js +111 -14
  290. package/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js.map +1 -1
  291. package/use-lunatic/commons/variables/get-questionnaire-data.js +0 -8
  292. package/use-lunatic/commons/variables/get-questionnaire-data.js.map +1 -1
  293. package/use-lunatic/commons/variables/lunatic-variables-store.d.ts +2 -2
  294. package/use-lunatic/commons/variables/lunatic-variables-store.js +5 -3
  295. package/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  296. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js +187 -8
  297. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  298. package/use-lunatic/hooks/use-page-has-response.js +49 -34
  299. package/use-lunatic/hooks/use-page-has-response.js.map +1 -1
  300. package/use-lunatic/hooks/useOverview.d.ts +1 -1
  301. package/use-lunatic/hooks/useOverview.js +19 -14
  302. package/use-lunatic/hooks/useOverview.js.map +1 -1
  303. package/use-lunatic/hooks/useOverview.spec.d.ts +1 -0
  304. package/use-lunatic/hooks/useOverview.spec.js +43 -0
  305. package/use-lunatic/hooks/useOverview.spec.js.map +1 -0
  306. package/use-lunatic/props/getComponentTypeProps.d.ts +1 -0
  307. package/use-lunatic/props/propValue.js +18 -6
  308. package/use-lunatic/props/propValue.js.map +1 -1
  309. package/use-lunatic/props/propValue.spec.js +97 -2
  310. package/use-lunatic/props/propValue.spec.js.map +1 -1
  311. package/use-lunatic/reducer/reducerInitializer.d.ts +2 -2
  312. package/use-lunatic/reducer/reducerInitializer.js +25 -32
  313. package/use-lunatic/reducer/reducerInitializer.js.map +1 -1
  314. package/use-lunatic/test.utils.d.ts +2 -0
  315. package/use-lunatic/test.utils.js +17 -0
  316. package/use-lunatic/test.utils.js.map +1 -0
  317. package/use-lunatic/type.d.ts +0 -4
  318. package/use-lunatic/use-lunatic.d.ts +1 -2
  319. package/use-lunatic/use-lunatic.js.map +1 -1
  320. package/utils/cast.d.ts +19 -0
  321. package/utils/cast.js +70 -0
  322. package/utils/cast.js.map +1 -0
  323. package/utils/constants/variable-status.d.ts +0 -4
  324. package/utils/constants/variable-status.js +1 -5
  325. package/utils/constants/variable-status.js.map +1 -1
  326. package/utils/variables.spec.js +0 -8
  327. package/utils/variables.spec.js.map +1 -1
  328. package/constants/component-types.d.ts +0 -1
  329. package/constants/component-types.js +0 -5
  330. package/constants/component-types.js.map +0 -1
  331. package/constants/declarations.d.ts +0 -9
  332. package/constants/declarations.js +0 -15
  333. package/constants/declarations.js.map +0 -1
  334. package/constants/event-types.d.ts +0 -10
  335. package/constants/event-types.js +0 -16
  336. package/constants/event-types.js.map +0 -1
  337. package/constants/index.d.ts +0 -5
  338. package/constants/index.js +0 -22
  339. package/constants/index.js.map +0 -1
  340. package/constants/indexedDBStore.d.ts +0 -21
  341. package/constants/indexedDBStore.js +0 -22
  342. package/constants/indexedDBStore.js.map +0 -1
  343. package/constants/supported-preferences.d.ts +0 -1
  344. package/constants/supported-preferences.js +0 -36
  345. package/constants/supported-preferences.js.map +0 -1
  346. package/constants/value-types.d.ts +0 -5
  347. package/constants/value-types.js +0 -9
  348. package/constants/value-types.js.map +0 -1
  349. package/constants/variable-types.d.ts +0 -2
  350. package/constants/variable-types.js +0 -8
  351. package/constants/variable-types.js.map +0 -1
  352. package/esm/constants/component-types.d.ts +0 -1
  353. package/esm/constants/component-types.js +0 -2
  354. package/esm/constants/component-types.js.map +0 -1
  355. package/esm/constants/declarations.d.ts +0 -9
  356. package/esm/constants/declarations.js +0 -12
  357. package/esm/constants/declarations.js.map +0 -1
  358. package/esm/constants/event-types.d.ts +0 -10
  359. package/esm/constants/event-types.js +0 -13
  360. package/esm/constants/event-types.js.map +0 -1
  361. package/esm/constants/index.d.ts +0 -5
  362. package/esm/constants/index.js +0 -6
  363. package/esm/constants/index.js.map +0 -1
  364. package/esm/constants/indexedDBStore.d.ts +0 -21
  365. package/esm/constants/indexedDBStore.js +0 -19
  366. package/esm/constants/indexedDBStore.js.map +0 -1
  367. package/esm/constants/supported-preferences.d.ts +0 -1
  368. package/esm/constants/supported-preferences.js +0 -10
  369. package/esm/constants/supported-preferences.js.map +0 -1
  370. package/esm/constants/value-types.d.ts +0 -5
  371. package/esm/constants/value-types.js +0 -6
  372. package/esm/constants/value-types.js.map +0 -1
  373. package/esm/constants/variable-types.d.ts +0 -2
  374. package/esm/constants/variable-types.js +0 -5
  375. package/esm/constants/variable-types.js.map +0 -1
  376. package/esm/hooks/useArticulation.d.ts +0 -58
  377. package/esm/hooks/useArticulation.js +0 -81
  378. package/esm/hooks/useArticulation.js.map +0 -1
  379. package/hooks/useArticulation.d.ts +0 -58
  380. package/hooks/useArticulation.js +0 -81
  381. package/hooks/useArticulation.js.map +0 -1
  382. package/src/constants/component-types.ts +0 -1
  383. package/src/constants/declarations.ts +0 -14
  384. package/src/constants/event-types.ts +0 -13
  385. package/src/constants/index.ts +0 -5
  386. package/src/constants/indexedDBStore.ts +0 -20
  387. package/src/constants/supported-preferences.ts +0 -10
  388. package/src/constants/value-types.ts +0 -5
  389. package/src/constants/variable-types.ts +0 -4
  390. package/src/hooks/useArticulation.ts +0 -124
  391. package/src/stories/behaviour/articulation/articulation.stories.tsx +0 -105
  392. package/src/stories/behaviour/articulation/roundabout.json +0 -348
@@ -38,8 +38,6 @@ const baseState = {
38
38
  options: { disableFilters: false },
39
39
  } satisfies LunaticReducerState;
40
40
 
41
- const onChange = { current: () => {} };
42
-
43
41
  export function reducerInitializer({
44
42
  source,
45
43
  data,
@@ -49,8 +47,8 @@ export function reducerInitializer({
49
47
  withOverview = false,
50
48
  disableFilters = false,
51
49
  getReferentiel,
52
- onVariableChange = onChange,
53
- logger = console.error,
50
+ onVariableChange,
51
+ logger,
54
52
  }: {
55
53
  source: LunaticSource;
56
54
  data: LunaticData;
@@ -60,13 +58,14 @@ export function reducerInitializer({
60
58
  withOverview?: LunaticOptions['withOverview'];
61
59
  disableFilters?: LunaticOptions['disableFilters'];
62
60
  getReferentiel?: LunaticOptions['getReferentiel'];
63
- onVariableChange?: RefObject<LunaticOptions['onVariableChange']>;
64
- logger?: LunaticLogger;
61
+ onVariableChange: RefObject<LunaticOptions['onVariableChange']>;
62
+ logger: LunaticLogger;
65
63
  }): LunaticReducerState {
66
64
  const variables = LunaticVariablesStore.makeFromSource(
67
65
  source,
68
66
  data,
69
- onVariableChange
67
+ onVariableChange,
68
+ disableFilters
70
69
  );
71
70
  const pages = checkLoops(createMapPages(source));
72
71
 
@@ -112,13 +111,11 @@ export function reducerInitializer({
112
111
  }
113
112
  return result as any;
114
113
  } catch (e) {
115
- if (logger) {
116
- // If there is an error interpreting a variable, return the raw expression
117
- logger({
118
- type: 'ERROR',
119
- error: e as Error,
120
- });
121
- }
114
+ // If there is an error interpreting a variable, return the raw expression
115
+ logger({
116
+ type: 'ERROR',
117
+ error: e as Error,
118
+ });
122
119
  return expressionString;
123
120
  }
124
121
  };
@@ -135,9 +132,9 @@ export function reducerInitializer({
135
132
  const pager = {
136
133
  page: initialPager?.page ?? 1,
137
134
  maxPage: source.maxPage ? parseInt(source.maxPage, 10) : 1,
138
- subPage: initialPager?.subPage,
135
+ subPage: undefined,
139
136
  nbSubPages: undefined,
140
- iteration: initialPager?.iteration,
137
+ iteration: undefined,
141
138
  nbIterations: undefined,
142
139
  lastReachedPage: lastReachedPage ?? initialPage,
143
140
  };
@@ -147,7 +144,7 @@ export function reducerInitializer({
147
144
  pager,
148
145
  previousPager: pager,
149
146
  pages,
150
- isInLoop: pager.subPage !== undefined,
147
+ isInLoop: false,
151
148
  updatedAt: Date.now(),
152
149
  overview: withOverview ? buildOverview(source) : [],
153
150
  updateBindings,
@@ -165,29 +162,22 @@ function fillPagerForLoop(state: LunaticReducerState): LunaticReducerState {
165
162
  return state;
166
163
  }
167
164
  const { isLoop, subPages, iterations, loopDependencies } = pages[pager.page];
168
-
169
- if (
170
- // For loop, jump at the first page
171
- isLoop ||
172
- // For roundabout, jump at the desired iteration / subpage (only if defined)
173
- (pager?.iteration !== undefined && subPages)
174
- ) {
175
- return {
176
- ...state,
177
- isInLoop: true,
178
- pager: {
179
- ...pager,
180
- subPage: pager?.subPage ?? 1,
181
- nbSubPages: (subPages ?? []).length,
182
- iteration: pager?.iteration ?? 0,
183
- nbIterations: forceInt(
184
- state.executeExpression(iterations, {
185
- deps: loopDependencies,
186
- })
187
- ),
188
- },
189
- };
165
+ if (!isLoop) {
166
+ return state;
190
167
  }
191
-
192
- return state;
168
+ return {
169
+ ...state,
170
+ isInLoop: true,
171
+ pager: {
172
+ ...pager,
173
+ subPage: pager?.subPage ?? 0,
174
+ nbSubPages: (subPages ?? []).length,
175
+ iteration: pager?.iteration ?? 0,
176
+ nbIterations: forceInt(
177
+ state.executeExpression(iterations, {
178
+ deps: loopDependencies,
179
+ })
180
+ ),
181
+ },
182
+ };
193
183
  }
@@ -0,0 +1,17 @@
1
+ import { LunaticData } from './type';
2
+
3
+ export const dataFromObject = (o: Record<string, unknown>): LunaticData => {
4
+ return {
5
+ EXTERNAL: {},
6
+ COLLECTED: Object.keys(o).reduce(
7
+ (acc, k) => ({
8
+ ...acc,
9
+ [k]: {
10
+ COLLECTED: o[k],
11
+ },
12
+ }),
13
+ {}
14
+ ),
15
+ CALCULATED: {},
16
+ };
17
+ };
@@ -74,10 +74,6 @@ export type PageTag = `${number}.${number}#${number}` | `${number}`;
74
74
  export type LunaticVariable = Variable;
75
75
  export type LunaticCollectedValue = Partial<{
76
76
  COLLECTED: unknown;
77
- EDITED: unknown;
78
- FORCED: unknown;
79
- INPUTTED: unknown;
80
- PREVIOUS: unknown;
81
77
  }>;
82
78
 
83
79
  // We need a mapped type to correlate type and variableType
@@ -9,29 +9,10 @@ import sourceCheckboxGroup from '../stories/checkbox-group/source.json';
9
9
  import dataOverview from '../stories/overview/dataLoop.json';
10
10
  import sourceCleaningLoop from '../stories/behaviour/cleaning/source-loop.json';
11
11
  import sourceCleaningResizing from '../stories/behaviour/resizing/source-resizing-cleaning.json';
12
- import type { LunaticData, PageTag } from './type';
12
+ import type { PageTag } from './type';
13
13
  import { useLunatic } from './use-lunatic';
14
14
  import { useCallback } from 'react';
15
-
16
- const dataFromObject = (o: Record<string, unknown>): LunaticData => {
17
- return {
18
- EXTERNAL: {},
19
- COLLECTED: Object.keys(o).reduce(
20
- (acc, k) => ({
21
- ...acc,
22
- [k]: {
23
- EDITED: null,
24
- FORCED: null,
25
- INPUTTED: null,
26
- PREVIOUS: null,
27
- COLLECTED: o[k],
28
- },
29
- }),
30
- {}
31
- ),
32
- CALCULATED: {},
33
- };
34
- };
15
+ import { dataFromObject } from './test.utils';
35
16
 
36
17
  describe('use-lunatic()', () => {
37
18
  const defaultParams = [
@@ -6,17 +6,18 @@ import {
6
6
  handleChangesAction,
7
7
  } from './actions';
8
8
  import { getPageTag, isFirstLastPage } from './commons';
9
+
10
+ import D from '../i18n';
11
+ import { COLLECTED } from '../utils/constants';
12
+ import { createLunaticProvider } from './lunatic-context';
9
13
  import type {
14
+ LunaticSource,
10
15
  LunaticChangesHandler,
11
16
  LunaticData,
12
17
  LunaticOptions,
13
18
  LunaticState,
14
19
  PageTag,
15
20
  } from './type';
16
- import D from '../i18n';
17
- import { COLLECTED } from '../utils/constants';
18
- import { createLunaticProvider } from './lunatic-context';
19
- import type { LunaticSource } from './type';
20
21
  import { compileControls as compileControlsLib } from './commons/compile-controls';
21
22
  import { useLoopVariables } from './hooks/use-loop-variables';
22
23
  import { getQuestionnaireData } from './commons/variables/get-questionnaire-data';
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Cast functions that force an unknown type to a specific type
3
+ */
4
+
5
+ /**
6
+ * Force a number (throw if it cannot be converted)
7
+ */
8
+ export function castNumber(v: unknown): number {
9
+ if (typeof v === 'number') {
10
+ return v;
11
+ }
12
+ if (typeof v === 'string') {
13
+ return parseInt(v, 10);
14
+ }
15
+ if (Array.isArray(v) && v.length > 0) {
16
+ return castNumber(v[0]);
17
+ }
18
+ throw new Error(`Cannot cast "${v}" to number`);
19
+ }
20
+
21
+ /**
22
+ * Force a number, with a default value if an unmanageable type is encountered
23
+ */
24
+ export const castNumberWithDefault =
25
+ (initial: number = 0) =>
26
+ (v: unknown): number => {
27
+ try {
28
+ return castNumber(v);
29
+ } catch {
30
+ return initial;
31
+ }
32
+ };
33
+
34
+ /**
35
+ * Force a bool
36
+ */
37
+ export function castBool(v: unknown): boolean {
38
+ if (typeof v === 'boolean') {
39
+ return v;
40
+ }
41
+ if (Array.isArray(v) && v.length > 0) {
42
+ return castBool(v[0]);
43
+ }
44
+ if (Array.isArray(v)) {
45
+ return false;
46
+ }
47
+ return Boolean(v);
48
+ }
49
+
50
+ /**
51
+ * Force a string
52
+ */
53
+ export function castString(v: unknown): string {
54
+ if (typeof v === 'string') {
55
+ return v;
56
+ }
57
+ if (typeof v === 'number') {
58
+ return v.toString();
59
+ }
60
+ if (Array.isArray(v)) {
61
+ return v.map(castString).join(', ');
62
+ }
63
+ if (!v) {
64
+ return '';
65
+ }
66
+ return v.toString();
67
+ }
@@ -1,5 +1 @@
1
- export const PREVIOUS = 'PREVIOUS' as const;
2
1
  export const COLLECTED = 'COLLECTED' as const;
3
- export const FORCED = 'FORCED' as const;
4
- export const EDITED = 'EDITED' as const;
5
- export const INPUTTED = 'INPUTTED' as const;
@@ -15,10 +15,6 @@ const data = {
15
15
  },
16
16
  PRENOMS: {
17
17
  COLLECTED: ['Paul', 'Pierre'],
18
- EDITED: [],
19
- INPUTTED: [],
20
- FORCED: [],
21
- PREVIOUS: [],
22
18
  },
23
19
  AGE: {},
24
20
  },
@@ -49,10 +45,6 @@ const loopCollectedVariable = {
49
45
  variableType: 'COLLECTED',
50
46
  values: {
51
47
  COLLECTED: [],
52
- PREVIOUS: [],
53
- FORCED: [],
54
- EDITED: [],
55
- INPUTTED: [],
56
48
  },
57
49
  name: 'PRENOMS',
58
50
  } as LunaticVariable;