@inseefr/lunatic 3.5.0-rc.3 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) 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/index.d.ts +0 -1
  88. package/esm/index.js +0 -1
  89. package/esm/index.js.map +1 -1
  90. package/esm/main.css +20 -0
  91. package/esm/main.css.map +1 -1
  92. package/esm/stories/overview/sourceWithHierarchy.json +5151 -0
  93. package/esm/tests/utils/lunatic.d.ts +0 -4
  94. package/esm/tests/utils/lunatic.js +0 -4
  95. package/esm/tests/utils/lunatic.js.map +1 -1
  96. package/esm/type.source.d.ts +6 -6
  97. package/esm/type.source.js +0 -1
  98. package/esm/type.source.js.map +1 -1
  99. package/esm/use-lunatic/commons/page.js +8 -0
  100. package/esm/use-lunatic/commons/page.js.map +1 -1
  101. package/esm/use-lunatic/commons/variables/behaviours/cleaning-behaviour.d.ts +1 -1
  102. package/esm/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js +111 -14
  103. package/esm/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js.map +1 -1
  104. package/esm/use-lunatic/commons/variables/get-questionnaire-data.js +0 -8
  105. package/esm/use-lunatic/commons/variables/get-questionnaire-data.js.map +1 -1
  106. package/esm/use-lunatic/commons/variables/lunatic-variables-store.d.ts +2 -2
  107. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js +5 -3
  108. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  109. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js +164 -8
  110. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  111. package/esm/use-lunatic/hooks/use-page-has-response.js +50 -35
  112. package/esm/use-lunatic/hooks/use-page-has-response.js.map +1 -1
  113. package/esm/use-lunatic/hooks/useOverview.d.ts +1 -1
  114. package/esm/use-lunatic/hooks/useOverview.js +19 -14
  115. package/esm/use-lunatic/hooks/useOverview.js.map +1 -1
  116. package/esm/use-lunatic/hooks/useOverview.spec.d.ts +1 -0
  117. package/esm/use-lunatic/hooks/useOverview.spec.js +38 -0
  118. package/esm/use-lunatic/hooks/useOverview.spec.js.map +1 -0
  119. package/esm/use-lunatic/props/getComponentTypeProps.d.ts +1 -0
  120. package/esm/use-lunatic/props/propValue.js +18 -6
  121. package/esm/use-lunatic/props/propValue.js.map +1 -1
  122. package/esm/use-lunatic/props/propValue.spec.js +97 -2
  123. package/esm/use-lunatic/props/propValue.spec.js.map +1 -1
  124. package/esm/use-lunatic/reducer/reducerInitializer.d.ts +2 -2
  125. package/esm/use-lunatic/reducer/reducerInitializer.js +25 -32
  126. package/esm/use-lunatic/reducer/reducerInitializer.js.map +1 -1
  127. package/esm/use-lunatic/test.utils.d.ts +2 -0
  128. package/esm/use-lunatic/test.utils.js +13 -0
  129. package/esm/use-lunatic/test.utils.js.map +1 -0
  130. package/esm/use-lunatic/type.d.ts +0 -4
  131. package/esm/use-lunatic/use-lunatic.d.ts +1 -2
  132. package/esm/use-lunatic/use-lunatic.js.map +1 -1
  133. package/esm/utils/cast.d.ts +19 -0
  134. package/esm/utils/cast.js +63 -0
  135. package/esm/utils/cast.js.map +1 -0
  136. package/esm/utils/constants/variable-status.d.ts +0 -4
  137. package/esm/utils/constants/variable-status.js +0 -4
  138. package/esm/utils/constants/variable-status.js.map +1 -1
  139. package/esm/utils/variables.spec.js +0 -8
  140. package/esm/utils/variables.spec.js.map +1 -1
  141. package/index.d.ts +0 -1
  142. package/index.js +1 -3
  143. package/index.js.map +1 -1
  144. package/main.css +20 -0
  145. package/main.css.map +1 -1
  146. package/package.json +60 -69
  147. package/src/components/Datepicker/Datepicker.tsx +1 -1
  148. package/src/components/Datepicker/__snapshots__/Datepicker.spec.tsx.snap +2 -2
  149. package/src/components/Duration/Duration.test.tsx +52 -0
  150. package/src/components/Duration/Duration.tsx +17 -4
  151. package/src/components/Input/Input.spec.tsx +34 -0
  152. package/src/components/Input/Input.tsx +26 -18
  153. package/src/components/Input/__snapshots__/Input.spec.tsx.snap +38 -19
  154. package/src/components/InputNumber/InputNumber.spec.tsx +15 -1
  155. package/src/components/InputNumber/InputNumber.tsx +1 -0
  156. package/src/components/InputNumber/InputNumberThousand.tsx +11 -1
  157. package/src/components/Loop/Loop.spec.tsx +77 -0
  158. package/src/components/Loop/Loop.tsx +1 -1
  159. package/src/components/RosterForLoop/__snapshots__/RosterForLoop.spec.tsx.snap +42 -20
  160. package/src/components/Roundabout/CustomRoundabout.tsx +13 -4
  161. package/src/components/Roundabout/roundabout.spec.tsx +3 -0
  162. package/src/components/Textarea/Textarea.spec.tsx +18 -0
  163. package/src/components/Textarea/Textarea.tsx +21 -13
  164. package/src/components/Textarea/__snapshots__/Textarea.spec.tsx.snap +21 -11
  165. package/src/components/shared/CharactersCount/CharactersCount.spec.tsx +31 -0
  166. package/src/components/shared/CharactersCount/CharactersCount.tsx +27 -0
  167. package/src/components/shared/Label/Label.spec.tsx +15 -3
  168. package/src/components/shared/Label/Label.tsx +1 -1
  169. package/src/components/shared/utils/getCharactersCountId.test.ts +14 -0
  170. package/src/components/shared/utils/getCharactersCountId.ts +6 -0
  171. package/src/components/type.ts +1 -0
  172. package/src/css/components/Input.scss +10 -0
  173. package/src/css/components/Roundabout.scss +10 -0
  174. package/src/index.ts +0 -1
  175. package/src/stories/accordion/source.json +1 -5
  176. package/src/stories/behaviour/cleaning/cleaning.stories.jsx +11 -0
  177. package/src/stories/behaviour/cleaning/loop.json +246 -0
  178. package/src/stories/behaviour/cleaning/source-loop.json +3 -15
  179. package/src/stories/behaviour/cleaning/source.json +2 -10
  180. package/src/stories/behaviour/controls/boucles-n.json +2 -10
  181. package/src/stories/behaviour/controls/loop.json +2 -10
  182. package/src/stories/behaviour/controls/roundabout.json +3 -15
  183. package/src/stories/behaviour/controls/simple-numeric.json +19 -95
  184. package/src/stories/behaviour/controls/simple.json +7 -35
  185. package/src/stories/behaviour/filter/dataLoop.json +0 -8
  186. package/src/stories/behaviour/filter/source.json +0 -12
  187. package/src/stories/behaviour/filter/sourceLoop.json +0 -12
  188. package/src/stories/behaviour/missing/source.json +12 -60
  189. package/src/stories/behaviour/others/V2_DeclarationsSimples.json +14 -70
  190. package/src/stories/behaviour/others/V2_MinMaxSum_Boucles.json +5 -25
  191. package/src/stories/behaviour/others/V2_QuestSimple_Boucles.json +107 -535
  192. package/src/stories/behaviour/others/V2_TCMRallyeGames.json +33 -165
  193. package/src/stories/behaviour/others/test-dylan.json +5 -25
  194. package/src/stories/behaviour/paste/source.json +1 -5
  195. package/src/stories/behaviour/performance/performance.stories.jsx +2 -2
  196. package/src/stories/behaviour/performance/source.json +4 -20
  197. package/src/stories/behaviour/resizing/source-resizing-cleaning.json +2 -10
  198. package/src/stories/behaviour/resizing/source.json +5 -25
  199. package/src/stories/checkbox-boolean/source.json +1 -5
  200. package/src/stories/checkbox-group/source.json +16 -80
  201. package/src/stories/checkbox-group/sourceCondition.json +3 -15
  202. package/src/stories/checkbox-group/sourceDetail.json +18 -90
  203. package/src/stories/checkbox-group/sourceLoop.json +2 -10
  204. package/src/stories/checkbox-one/source.json +1 -5
  205. package/src/stories/checkbox-one/sourceDetail.json +2 -10
  206. package/src/stories/date-picker/source.json +1 -5
  207. package/src/stories/declaration/source.json +2 -10
  208. package/src/stories/disabled/data.json +0 -16
  209. package/src/stories/disabled/source.json +7 -35
  210. package/src/stories/dropdown/data.json +2 -10
  211. package/src/stories/dropdown/source.json +2 -10
  212. package/src/stories/duration/mois.json +1 -5
  213. package/src/stories/duration/time.json +1 -5
  214. package/src/stories/filter-description/source-options.json +3 -15
  215. package/src/stories/input/source.json +1 -5
  216. package/src/stories/input-number/input-number.stories.jsx +5 -0
  217. package/src/stories/input-number/source-big-number.json +27 -0
  218. package/src/stories/input-number/source-euro.json +2 -6
  219. package/src/stories/input-number/source.json +1 -5
  220. package/src/stories/loop/source-bloc.json +2 -10
  221. package/src/stories/loop/source-paginated.json +2 -10
  222. package/src/stories/loop/source-roster.json +2 -10
  223. package/src/stories/loop/source-with-header.json +2 -10
  224. package/src/stories/overview/dataLoop.json +24 -120
  225. package/src/stories/overview/overview.stories.jsx +9 -0
  226. package/src/stories/overview/source.json +1 -5
  227. package/src/stories/overview/sourceLoop.json +24 -120
  228. package/src/stories/overview/sourceWithHierarchy.json +164 -820
  229. package/src/stories/pairwise/source.json +5 -25
  230. package/src/stories/question/source.json +2 -10
  231. package/src/stories/questionnaires/logement/data.json +0 -1288
  232. package/src/stories/questionnaires/logement/source-sequence.json +564 -2820
  233. package/src/stories/questionnaires/logement/source-sum.json +280 -1400
  234. package/src/stories/questionnaires/logement/source.json +564 -2820
  235. package/src/stories/questionnaires/recensement/source.json +106 -530
  236. package/src/stories/questionnaires/rp/source.json +8 -40
  237. package/src/stories/questionnaires/simpsons/source.json +104 -520
  238. package/src/stories/radio/source.json +1 -5
  239. package/src/stories/radio/sourceCondition.json +2 -10
  240. package/src/stories/radio/sourceDetail.json +2 -10
  241. package/src/stories/radio/sourceHorizontal.json +1 -5
  242. package/src/stories/roundabout/data1.json +0 -12
  243. package/src/stories/roundabout/data2.json +0 -16
  244. package/src/stories/roundabout/source.json +11 -35
  245. package/src/stories/suggester/source-arbitrary-response.json +6 -30
  246. package/src/stories/suggester/source-error.json +6 -30
  247. package/src/stories/suggester/source-multiline.json +0 -16
  248. package/src/stories/suggester/source-option-responses.json +5 -25
  249. package/src/stories/suggester/source.json +7 -35
  250. package/src/stories/summary/data.json +0 -16
  251. package/src/stories/summary/source.json +7 -35
  252. package/src/stories/switch/data-forced.json +2 -10
  253. package/src/stories/switch/source.json +4 -20
  254. package/src/stories/table/source-colspan.json +8 -40
  255. package/src/stories/table/table-dynamique.json +1 -5
  256. package/src/stories/text/source-roster.json +3 -15
  257. package/src/stories/text/source-table.json +9 -45
  258. package/src/stories/textarea/source.json +1 -5
  259. package/src/stories/utils/{SchemaValidator.tsx → SchemaValidator.jsx} +1 -1
  260. package/src/stories/utils/{orchestrator.tsx → orchestrator.jsx} +9 -13
  261. package/src/stories/utils/{overview.tsx → overview.jsx} +0 -2
  262. package/src/tests/utils/lunatic.ts +0 -4
  263. package/src/type.source.ts +8 -7
  264. package/src/use-lunatic/__snapshots__/use-lunatic.test.ts.snap +0 -1159
  265. package/src/use-lunatic/commons/page.ts +10 -0
  266. package/src/use-lunatic/commons/variables/behaviours/cleaning-behaviour.ts +182 -24
  267. package/src/use-lunatic/commons/variables/get-questionnaire-data.ts +0 -12
  268. package/src/use-lunatic/commons/variables/lunatic-variables-store.spec.ts +190 -8
  269. package/src/use-lunatic/commons/variables/lunatic-variables-store.ts +7 -4
  270. package/src/use-lunatic/hooks/use-page-has-response.test.ts +200 -0
  271. package/src/use-lunatic/hooks/use-page-has-response.ts +67 -44
  272. package/src/use-lunatic/hooks/useOverview.spec.ts +42 -0
  273. package/src/use-lunatic/hooks/useOverview.ts +41 -18
  274. package/src/use-lunatic/props/propValue.spec.ts +105 -2
  275. package/src/use-lunatic/props/propValue.ts +26 -8
  276. package/src/use-lunatic/reducer/reducerInitializer.tsx +31 -41
  277. package/src/use-lunatic/test.utils.ts +17 -0
  278. package/src/use-lunatic/type.ts +0 -4
  279. package/src/use-lunatic/use-lunatic.test.ts +2 -21
  280. package/src/use-lunatic/use-lunatic.ts +5 -4
  281. package/src/utils/cast.ts +67 -0
  282. package/src/utils/constants/variable-status.ts +0 -4
  283. package/src/utils/variables.spec.ts +0 -8
  284. package/stories/overview/sourceWithHierarchy.json +5151 -0
  285. package/tests/utils/lunatic.d.ts +0 -4
  286. package/tests/utils/lunatic.js +0 -4
  287. package/tests/utils/lunatic.js.map +1 -1
  288. package/tsconfig.build.tsbuildinfo +1 -1
  289. package/type.source.d.ts +6 -6
  290. package/type.source.js +0 -1
  291. package/type.source.js.map +1 -1
  292. package/use-lunatic/commons/page.js +8 -0
  293. package/use-lunatic/commons/page.js.map +1 -1
  294. package/use-lunatic/commons/variables/behaviours/cleaning-behaviour.d.ts +1 -1
  295. package/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js +111 -14
  296. package/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js.map +1 -1
  297. package/use-lunatic/commons/variables/get-questionnaire-data.js +0 -8
  298. package/use-lunatic/commons/variables/get-questionnaire-data.js.map +1 -1
  299. package/use-lunatic/commons/variables/lunatic-variables-store.d.ts +2 -2
  300. package/use-lunatic/commons/variables/lunatic-variables-store.js +5 -3
  301. package/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  302. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js +187 -8
  303. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  304. package/use-lunatic/hooks/use-page-has-response.js +49 -34
  305. package/use-lunatic/hooks/use-page-has-response.js.map +1 -1
  306. package/use-lunatic/hooks/useOverview.d.ts +1 -1
  307. package/use-lunatic/hooks/useOverview.js +19 -14
  308. package/use-lunatic/hooks/useOverview.js.map +1 -1
  309. package/use-lunatic/hooks/useOverview.spec.d.ts +1 -0
  310. package/use-lunatic/hooks/useOverview.spec.js +43 -0
  311. package/use-lunatic/hooks/useOverview.spec.js.map +1 -0
  312. package/use-lunatic/props/getComponentTypeProps.d.ts +1 -0
  313. package/use-lunatic/props/propValue.js +18 -6
  314. package/use-lunatic/props/propValue.js.map +1 -1
  315. package/use-lunatic/props/propValue.spec.js +97 -2
  316. package/use-lunatic/props/propValue.spec.js.map +1 -1
  317. package/use-lunatic/reducer/reducerInitializer.d.ts +2 -2
  318. package/use-lunatic/reducer/reducerInitializer.js +25 -32
  319. package/use-lunatic/reducer/reducerInitializer.js.map +1 -1
  320. package/use-lunatic/test.utils.d.ts +2 -0
  321. package/use-lunatic/test.utils.js +17 -0
  322. package/use-lunatic/test.utils.js.map +1 -0
  323. package/use-lunatic/type.d.ts +0 -4
  324. package/use-lunatic/use-lunatic.d.ts +1 -2
  325. package/use-lunatic/use-lunatic.js.map +1 -1
  326. package/utils/cast.d.ts +19 -0
  327. package/utils/cast.js +70 -0
  328. package/utils/cast.js.map +1 -0
  329. package/utils/constants/variable-status.d.ts +0 -4
  330. package/utils/constants/variable-status.js +1 -5
  331. package/utils/constants/variable-status.js.map +1 -1
  332. package/utils/variables.spec.js +0 -8
  333. package/utils/variables.spec.js.map +1 -1
  334. package/constants/component-types.d.ts +0 -1
  335. package/constants/component-types.js +0 -5
  336. package/constants/component-types.js.map +0 -1
  337. package/constants/declarations.d.ts +0 -9
  338. package/constants/declarations.js +0 -15
  339. package/constants/declarations.js.map +0 -1
  340. package/constants/event-types.d.ts +0 -10
  341. package/constants/event-types.js +0 -16
  342. package/constants/event-types.js.map +0 -1
  343. package/constants/index.d.ts +0 -5
  344. package/constants/index.js +0 -22
  345. package/constants/index.js.map +0 -1
  346. package/constants/indexedDBStore.d.ts +0 -21
  347. package/constants/indexedDBStore.js +0 -22
  348. package/constants/indexedDBStore.js.map +0 -1
  349. package/constants/supported-preferences.d.ts +0 -1
  350. package/constants/supported-preferences.js +0 -36
  351. package/constants/supported-preferences.js.map +0 -1
  352. package/constants/value-types.d.ts +0 -5
  353. package/constants/value-types.js +0 -9
  354. package/constants/value-types.js.map +0 -1
  355. package/constants/variable-types.d.ts +0 -2
  356. package/constants/variable-types.js +0 -8
  357. package/constants/variable-types.js.map +0 -1
  358. package/esm/constants/component-types.d.ts +0 -1
  359. package/esm/constants/component-types.js +0 -2
  360. package/esm/constants/component-types.js.map +0 -1
  361. package/esm/constants/declarations.d.ts +0 -9
  362. package/esm/constants/declarations.js +0 -12
  363. package/esm/constants/declarations.js.map +0 -1
  364. package/esm/constants/event-types.d.ts +0 -10
  365. package/esm/constants/event-types.js +0 -13
  366. package/esm/constants/event-types.js.map +0 -1
  367. package/esm/constants/index.d.ts +0 -5
  368. package/esm/constants/index.js +0 -6
  369. package/esm/constants/index.js.map +0 -1
  370. package/esm/constants/indexedDBStore.d.ts +0 -21
  371. package/esm/constants/indexedDBStore.js +0 -19
  372. package/esm/constants/indexedDBStore.js.map +0 -1
  373. package/esm/constants/supported-preferences.d.ts +0 -1
  374. package/esm/constants/supported-preferences.js +0 -10
  375. package/esm/constants/supported-preferences.js.map +0 -1
  376. package/esm/constants/value-types.d.ts +0 -5
  377. package/esm/constants/value-types.js +0 -6
  378. package/esm/constants/value-types.js.map +0 -1
  379. package/esm/constants/variable-types.d.ts +0 -2
  380. package/esm/constants/variable-types.js +0 -5
  381. package/esm/constants/variable-types.js.map +0 -1
  382. package/esm/utils/getArticulation.d.ts +0 -58
  383. package/esm/utils/getArticulation.js +0 -78
  384. package/esm/utils/getArticulation.js.map +0 -1
  385. package/src/constants/component-types.ts +0 -1
  386. package/src/constants/declarations.ts +0 -14
  387. package/src/constants/event-types.ts +0 -13
  388. package/src/constants/index.ts +0 -5
  389. package/src/constants/indexedDBStore.ts +0 -20
  390. package/src/constants/supported-preferences.ts +0 -10
  391. package/src/constants/value-types.ts +0 -5
  392. package/src/constants/variable-types.ts +0 -4
  393. package/src/stories/behaviour/articulation/articulation.stories.tsx +0 -108
  394. package/src/stories/behaviour/articulation/roundabout.json +0 -348
  395. package/src/utils/getArticulation.ts +0 -117
  396. package/utils/getArticulation.d.ts +0 -58
  397. package/utils/getArticulation.js +0 -77
  398. package/utils/getArticulation.js.map +0 -1
@@ -1,348 +0,0 @@
1
- {
2
- "$schema": "../../../../lunatic-schema.json",
3
- "maxPage": "4",
4
- "articulation": {
5
- "source": "roundabout",
6
- "items": [
7
- {
8
- "label": "Prénom",
9
- "value": "PRENOMS"
10
- },
11
- {
12
- "label": "Sexe",
13
- "value": "if SEXE = \"H\" then \"Homme\" else \"Femme\""
14
- },
15
- {
16
- "label": "Age",
17
- "value": "cast(AGE, string) || \" ans\""
18
- }
19
- ]
20
- },
21
- "components": [
22
- {
23
- "id": "how",
24
- "componentType": "InputNumber",
25
- "mandatory": false,
26
- "page": "1",
27
- "min": 1,
28
- "max": 10,
29
- "decimals": 0,
30
- "label": {
31
- "value": "\"Combien de personnes vivent habituellement à votre adresse ?\"",
32
- "type": "VTL|MD"
33
- },
34
- "conditionFilter": { "value": "true", "type": "VTL" },
35
- "response": { "name": "NB_HAB" }
36
- },
37
- {
38
- "id": "loop",
39
- "componentType": "Loop",
40
- "page": "2",
41
- "depth": 1,
42
- "paginatedLoop": false,
43
- "conditionFilter": { "value": "true", "type": "VTL" },
44
- "loopDependencies": ["NHAB"],
45
- "lines": {
46
- "min": { "value": "NB_HAB", "type": "VTL" },
47
- "max": { "value": "NB_HAB", "type": "VTL" }
48
- },
49
- "components": [
50
- {
51
- "id": "prenom",
52
- "componentType": "Input",
53
- "mandatory": false,
54
- "maxLength": 20,
55
- "label": {
56
- "value": "\"Prénom\"))",
57
- "type": "VTL|MD"
58
- },
59
- "conditionFilter": {
60
- "value": "true",
61
- "type": "VTL"
62
- },
63
- "response": { "name": "PRENOMS" }
64
- },
65
- {
66
- "id": "sexe",
67
- "componentType": "CheckboxOne",
68
- "mandatory": false,
69
- "maxLength": 20,
70
- "label": {
71
- "value": "\"Sexe\"",
72
- "type": "VTL|MD"
73
- },
74
- "conditionFilter": {
75
- "value": "true",
76
- "type": "VTL"
77
- },
78
- "options": [
79
- {
80
- "value": "H",
81
- "label": { "value": "\"Homme\"", "type": "VTL|MD" }
82
- },
83
-
84
- {
85
- "value": "F",
86
- "label": { "value": "\"Femme\"", "type": "VTL|MD" }
87
- }
88
- ],
89
- "response": { "name": "SEXE" }
90
- },
91
- {
92
- "id": "age",
93
- "componentType": "InputNumber",
94
- "maxLength": 3,
95
- "label": {
96
- "value": "\"Age\"",
97
- "type": "VTL|MD"
98
- },
99
- "conditionFilter": {
100
- "value": "true",
101
- "type": "VTL"
102
- },
103
- "response": { "name": "AGE" }
104
- }
105
- ]
106
- },
107
- {
108
- "id": "roundabout",
109
- "componentType": "Roundabout",
110
- "page": "3",
111
- "conditionFilter": { "value": "true", "type": "VTL" },
112
- "iterations": { "value": "NB_HAB", "type": "VTL" },
113
- "label": { "value": "\"Libellé du rondpoint\"", "type": "VTL" },
114
- "locked": true,
115
- "progressVariable": "PROGRESS",
116
- "item": {
117
- "label": {
118
- "value": "\"Questions de \" || PRENOMS",
119
- "type": "VTL"
120
- },
121
- "description": {
122
- "value": "if AGE > 18 then \"Aller aux question destinées à \" || PRENOMS else PRENOMS || \" n'est pas majeur, il/elle n'a pas à répondre aux questions\"",
123
- "type": "VTL"
124
- },
125
- "disabled": {
126
- "value": "AGE < 18",
127
- "type": "VTL"
128
- }
129
- },
130
- "controls": [],
131
- "components": [
132
- {
133
- "id": "radio",
134
- "componentType": "Radio",
135
- "mandatory": false,
136
- "page": "3.1",
137
- "label": {
138
- "value": "\"Connaissez-vous le recensement de la population ?\"",
139
- "type": "VTL|MD"
140
- },
141
-
142
- "conditionFilter": { "value": "true", "type": "VTL" },
143
-
144
- "options": [
145
- { "value": "1", "label": { "value": "\"oui\"", "type": "VTL|MD" } },
146
-
147
- { "value": "2", "label": { "value": "\"non\"", "type": "VTL|MD" } }
148
- ],
149
- "response": { "name": "KNOWREC" }
150
- },
151
- {
152
- "id": "jsygk7m7",
153
- "componentType": "Subsequence",
154
- "page": "3.2",
155
- "label": {
156
- "value": "\"Deuxième page de questions pour \"|| PRENOMS",
157
- "type": "VTL|MD"
158
- },
159
- "conditionFilter": { "value": "true", "type": "VTL" }
160
- },
161
- {
162
- "id": "sexe",
163
- "componentType": "Radio",
164
- "page": "3.2",
165
- "label": {
166
- "value": "\"Sexe\"",
167
- "type": "VTL"
168
- },
169
- "conditionFilter": {
170
- "value": "true",
171
- "type": "VTL"
172
- },
173
- "options": [
174
- {
175
- "value": "1",
176
- "label": { "value": "\"Homme\"", "type": "VTL|MD" }
177
- },
178
- {
179
- "value": "2",
180
- "label": { "value": "\"Femme\"", "type": "VTL|MD" }
181
- }
182
- ],
183
- "response": { "name": "SEXE" }
184
- },
185
- {
186
- "id": "jsygk7m7",
187
- "componentType": "Subsequence",
188
- "page": "3.3",
189
- "label": {
190
- "value": "\"Troisième page de questions \" || PRENOMS",
191
- "type": "VTL|MD"
192
- },
193
- "conditionFilter": { "value": "true", "type": "VTL" }
194
- },
195
- {
196
- "id": "kmno1n7m",
197
- "componentType": "Input",
198
- "maxLength": 30,
199
- "page": "3.3",
200
- "label": {
201
- "value": "\"Dites quelque chose.\"))",
202
- "type": "VTL|MD"
203
- },
204
- "conditionFilter": {
205
- "value": "true",
206
- "type": "VTL"
207
- },
208
- "response": { "name": "SOMETHING" }
209
- }
210
- ]
211
- },
212
- {
213
- "id": "seq",
214
- "componentType": "Sequence",
215
- "label": {
216
- "value": "\"Merci !\"",
217
- "type": "VTL|MD"
218
- },
219
- "conditionFilter": { "value": "true", "type": "VTL" },
220
- "page": "4"
221
- }
222
- ],
223
- "variables": [
224
- {
225
- "variableType": "COLLECTED",
226
- "name": "NB_HAB",
227
- "values": {
228
- "PREVIOUS": null,
229
- "COLLECTED": 2,
230
- "FORCED": null,
231
- "EDITED": null,
232
- "INPUTTED": null
233
- }
234
- },
235
- {
236
- "variableType": "COLLECTED",
237
- "name": "SOMETHING",
238
- "values": {
239
- "PREVIOUS": [],
240
- "COLLECTED": [],
241
- "FORCED": [],
242
- "EDITED": [],
243
- "INPUTTED": []
244
- }
245
- },
246
- {
247
- "variableType": "COLLECTED",
248
- "name": "SEXE",
249
- "values": {
250
- "PREVIOUS": null,
251
- "COLLECTED": ["H", "F"],
252
- "FORCED": null,
253
- "EDITED": null,
254
- "INPUTTED": null
255
- }
256
- },
257
- {
258
- "variableType": "COLLECTED",
259
- "name": "AGE",
260
- "values": {
261
- "PREVIOUS": null,
262
- "COLLECTED": [24, 24],
263
- "FORCED": null,
264
- "EDITED": null,
265
- "INPUTTED": null
266
- }
267
- },
268
- {
269
- "variableType": "COLLECTED",
270
- "name": "SEXE",
271
- "values": {
272
- "PREVIOUS": [],
273
- "COLLECTED": [],
274
- "FORCED": [],
275
- "EDITED": [],
276
- "INPUTTED": []
277
- }
278
- },
279
- {
280
- "variableType": "COLLECTED",
281
- "name": "PRENOMS",
282
- "values": {
283
- "PREVIOUS": null,
284
- "COLLECTED": ["Fanny", "Ines"],
285
- "FORCED": null,
286
- "EDITED": null,
287
- "INPUTTED": null
288
- }
289
- },
290
- {
291
- "variableType": "COLLECTED",
292
- "name": "KNOWREC",
293
- "values": {
294
- "PREVIOUS": [],
295
- "COLLECTED": [],
296
- "FORCED": [],
297
- "EDITED": [],
298
- "INPUTTED": []
299
- }
300
- },
301
- {
302
- "variableType": "COLLECTED",
303
- "name": "PROGRESS",
304
- "values": {
305
- "PREVIOUS": [],
306
- "COLLECTED": [0, -1],
307
- "FORCED": [],
308
- "EDITED": [],
309
- "INPUTTED": []
310
- }
311
- },
312
- {
313
- "variableType": "CALCULATED",
314
- "name": "PRENOMREF",
315
- "expression": { "value": "first_value(PRENOMS over())", "type": "VTL" },
316
- "bindingDependencies": ["PRENOMS"],
317
- "inFilter": "true"
318
- },
319
- {
320
- "variableType": "CALCULATED",
321
- "name": "COMPLETE",
322
- "expression": {
323
- "value": "not(isnull(KNOWREC)) and not(isnull(SEXE)) and not(isnull(SOMETHING))",
324
- "type": "VTL"
325
- },
326
- "bindingDependencies": ["KNOWREC", "SEXE", "SOMETHING"],
327
- "shapeFrom": "PRENOMS",
328
- "inFilter": "true"
329
- },
330
- {
331
- "variableType": "CALCULATED",
332
- "name": "PARTIAL",
333
- "expression": {
334
- "value": "not(isnull(KNOWREC)) or not(isnull(SEXE)) or not(isnull(SOMETHING))",
335
- "type": "VTL"
336
- },
337
- "bindingDependencies": ["KNOWREC", "SEXE", "SOMETHING"],
338
- "shapeFrom": "PRENOMS",
339
- "inFilter": "true"
340
- }
341
- ],
342
- "resizing": {
343
- "NB_HAB": {
344
- "size": "NB_HAB",
345
- "variables": ["PRENOMS", "AGE", "SEXE", "SOMETHING", "DATNAIS"]
346
- }
347
- }
348
- }
@@ -1,117 +0,0 @@
1
- import type {
2
- ComponentDefinition,
3
- ComponentRoundaboutDefinition,
4
- LunaticSource,
5
- } from '../type.source';
6
- import type { LunaticData, PageTag } from '../use-lunatic/type';
7
- import { reducerInitializer } from '../use-lunatic/reducer/reducerInitializer';
8
- import { type ReactNode } from 'react';
9
- import { times } from './array';
10
- import { forceInt } from './number';
11
-
12
- type ArticulationItem = {
13
- label: string;
14
- value: string;
15
- };
16
-
17
- type Articulation = {
18
- source: string;
19
- items: ArticulationItem[];
20
- };
21
-
22
- type Item = {
23
- cells: {
24
- label: string;
25
- value: ReactNode;
26
- }[];
27
- progress: number; // -1: not completed, 0: started, 1: finished
28
- page: PageTag;
29
- };
30
-
31
- /**
32
- * Retrieve the articulation state
33
- *
34
- * ## Why this hook
35
- *
36
- * The goal of this hook is to provide insights about a roundabout using extra information inserted in the JSON source
37
- * provided to Lunatic.
38
- *
39
- * For instance
40
- *
41
- * ```
42
- * "articulation": {
43
- * "source": "roundabout",
44
- * "items": [
45
- * {
46
- * "label": "Prénom",
47
- * "value": "PRENOMS"
48
- * },
49
- * {
50
- * "label": "Sexe",
51
- * "value": "if SEXE = \"H\" then \"Homme\" else \"Femme\""
52
- * },
53
- * {
54
- * "label": "Age",
55
- * "value": "cast(AGE, string) || \" ans\""
56
- * }
57
- * ]
58
- * },
59
- * ```
60
- *
61
- * - source is the ID of the roundabout component
62
- * - items define the field to extract from the roundabout data
63
- */
64
- export function getArticulation(
65
- source: LunaticSource & { articulation: Articulation },
66
- data: LunaticData
67
- ): { items: Item[] } {
68
- const roundabout = findComponentById(
69
- source.components,
70
- source.articulation.source
71
- );
72
- const { variables } = reducerInitializer({ source, data });
73
- const iterations = forceInt(
74
- variables.run(roundabout?.iterations.value ?? '0')
75
- );
76
-
77
- const rows = times(iterations, (k) =>
78
- source.articulation.items.map((item) => ({
79
- label: item.label,
80
- value: variables.run(item.value, { iteration: [k] }) as ReactNode,
81
- }))
82
- );
83
-
84
- if (!roundabout) {
85
- return {
86
- items: [],
87
- };
88
- }
89
-
90
- return {
91
- items: rows.map((row, k) => ({
92
- cells: row,
93
- progress: forceInt(variables.get(roundabout.progressVariable, [k]) ?? -1),
94
- page: (roundabout.page
95
- ? `${roundabout.page}.1#${k + 1}`
96
- : '1') as PageTag,
97
- })),
98
- };
99
- }
100
-
101
- function findComponentById(
102
- components: ComponentDefinition[],
103
- id: string
104
- ): (ComponentRoundaboutDefinition & { page?: string }) | null {
105
- for (const c of components) {
106
- if ('id' in c && c.id === id && c.componentType === 'Roundabout') {
107
- return c;
108
- }
109
- if ('components' in c) {
110
- const child = findComponentById(c.components, id);
111
- if (child) {
112
- return child;
113
- }
114
- }
115
- }
116
- return null;
117
- }
@@ -1,58 +0,0 @@
1
- import type { LunaticSource } from '../type.source';
2
- import type { LunaticData, PageTag } from '../use-lunatic/type';
3
- import { type ReactNode } from 'react';
4
- type ArticulationItem = {
5
- label: string;
6
- value: string;
7
- };
8
- type Articulation = {
9
- source: string;
10
- items: ArticulationItem[];
11
- };
12
- type Item = {
13
- cells: {
14
- label: string;
15
- value: ReactNode;
16
- }[];
17
- progress: number;
18
- page: PageTag;
19
- };
20
- /**
21
- * Retrieve the articulation state
22
- *
23
- * ## Why this hook
24
- *
25
- * The goal of this hook is to provide insights about a roundabout using extra information inserted in the JSON source
26
- * provided to Lunatic.
27
- *
28
- * For instance
29
- *
30
- * ```
31
- * "articulation": {
32
- * "source": "roundabout",
33
- * "items": [
34
- * {
35
- * "label": "Prénom",
36
- * "value": "PRENOMS"
37
- * },
38
- * {
39
- * "label": "Sexe",
40
- * "value": "if SEXE = \"H\" then \"Homme\" else \"Femme\""
41
- * },
42
- * {
43
- * "label": "Age",
44
- * "value": "cast(AGE, string) || \" ans\""
45
- * }
46
- * ]
47
- * },
48
- * ```
49
- *
50
- * - source is the ID of the roundabout component
51
- * - items define the field to extract from the roundabout data
52
- */
53
- export declare function getArticulation(source: LunaticSource & {
54
- articulation: Articulation;
55
- }, data: LunaticData): {
56
- items: Item[];
57
- };
58
- export {};
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getArticulation = getArticulation;
4
- const reducerInitializer_1 = require("../use-lunatic/reducer/reducerInitializer");
5
- const array_1 = require("./array");
6
- const number_1 = require("./number");
7
- /**
8
- * Retrieve the articulation state
9
- *
10
- * ## Why this hook
11
- *
12
- * The goal of this hook is to provide insights about a roundabout using extra information inserted in the JSON source
13
- * provided to Lunatic.
14
- *
15
- * For instance
16
- *
17
- * ```
18
- * "articulation": {
19
- * "source": "roundabout",
20
- * "items": [
21
- * {
22
- * "label": "Prénom",
23
- * "value": "PRENOMS"
24
- * },
25
- * {
26
- * "label": "Sexe",
27
- * "value": "if SEXE = \"H\" then \"Homme\" else \"Femme\""
28
- * },
29
- * {
30
- * "label": "Age",
31
- * "value": "cast(AGE, string) || \" ans\""
32
- * }
33
- * ]
34
- * },
35
- * ```
36
- *
37
- * - source is the ID of the roundabout component
38
- * - items define the field to extract from the roundabout data
39
- */
40
- function getArticulation(source, data) {
41
- const roundabout = findComponentById(source.components, source.articulation.source);
42
- const { variables } = (0, reducerInitializer_1.reducerInitializer)({ source, data });
43
- const iterations = (0, number_1.forceInt)(variables.run(roundabout?.iterations.value ?? '0'));
44
- const rows = (0, array_1.times)(iterations, (k) => source.articulation.items.map((item) => ({
45
- label: item.label,
46
- value: variables.run(item.value, { iteration: [k] }),
47
- })));
48
- if (!roundabout) {
49
- return {
50
- items: [],
51
- };
52
- }
53
- return {
54
- items: rows.map((row, k) => ({
55
- cells: row,
56
- progress: (0, number_1.forceInt)(variables.get(roundabout.progressVariable, [k]) ?? -1),
57
- page: (roundabout.page
58
- ? `${roundabout.page}.1#${k + 1}`
59
- : '1'),
60
- })),
61
- };
62
- }
63
- function findComponentById(components, id) {
64
- for (const c of components) {
65
- if ('id' in c && c.id === id && c.componentType === 'Roundabout') {
66
- return c;
67
- }
68
- if ('components' in c) {
69
- const child = findComponentById(c.components, id);
70
- if (child) {
71
- return child;
72
- }
73
- }
74
- }
75
- return null;
76
- }
77
- //# sourceMappingURL=getArticulation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getArticulation.js","sourceRoot":"","sources":["../src/utils/getArticulation.ts"],"names":[],"mappings":";;AA+DA,0CAmCC;AA5FD,kFAA+E;AAE/E,mCAAgC;AAChC,qCAAoC;AAqBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,SAAgB,eAAe,CAC9B,MAAsD,EACtD,IAAiB;IAEjB,MAAM,UAAU,GAAG,iBAAiB,CACnC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,CAAC,MAAM,CAC1B,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,uCAAkB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAA,iBAAQ,EAC1B,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,CAClD,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CACpC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAc;KACjE,CAAC,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO;YACN,KAAK,EAAE,EAAE;SACT,CAAC;IACH,CAAC;IAED,OAAO;QACN,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,IAAA,iBAAQ,EAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACzE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI;gBACrB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;gBACjC,CAAC,CAAC,GAAG,CAAY;SAClB,CAAC,CAAC;KACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACzB,UAAiC,EACjC,EAAU;IAEV,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,aAAa,KAAK,YAAY,EAAE,CAAC;YAClE,OAAO,CAAC,CAAC;QACV,CAAC;QACD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}