@inseefr/lunatic 3.5.0-rc.3 → 3.5.1-rc.1743691949561

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 (434) 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/Duration/durationUtils.d.ts +0 -1
  6. package/components/Duration/durationUtils.js.map +1 -1
  7. package/components/Duration/getDurationFromValue.d.ts +3 -2
  8. package/components/Duration/getDurationFromValue.js.map +1 -1
  9. package/components/Input/Input.js +6 -3
  10. package/components/Input/Input.js.map +1 -1
  11. package/components/Input/Input.spec.js +25 -0
  12. package/components/Input/Input.spec.js.map +1 -1
  13. package/components/InputNumber/InputNumber.js +1 -1
  14. package/components/InputNumber/InputNumber.js.map +1 -1
  15. package/components/InputNumber/InputNumber.spec.js +9 -1
  16. package/components/InputNumber/InputNumber.spec.js.map +1 -1
  17. package/components/InputNumber/InputNumberThousand.d.ts +2 -1
  18. package/components/InputNumber/InputNumberThousand.js +8 -2
  19. package/components/InputNumber/InputNumberThousand.js.map +1 -1
  20. package/components/Loop/Loop.js +1 -1
  21. package/components/Loop/Loop.js.map +1 -1
  22. package/components/Loop/Loop.spec.d.ts +1 -0
  23. package/components/Loop/Loop.spec.js +39 -0
  24. package/components/Loop/Loop.spec.js.map +1 -0
  25. package/components/Roundabout/CustomRoundabout.d.ts +1 -1
  26. package/components/Roundabout/CustomRoundabout.js +4 -3
  27. package/components/Roundabout/CustomRoundabout.js.map +1 -1
  28. package/components/Roundabout/roundabout.spec.js +3 -1
  29. package/components/Roundabout/roundabout.spec.js.map +1 -1
  30. package/components/Textarea/Textarea.js +4 -1
  31. package/components/Textarea/Textarea.js.map +1 -1
  32. package/components/Textarea/Textarea.spec.js +13 -0
  33. package/components/Textarea/Textarea.spec.js.map +1 -1
  34. package/components/shared/CharactersCount/CharactersCount.d.ts +7 -0
  35. package/components/shared/CharactersCount/CharactersCount.js +20 -0
  36. package/components/shared/CharactersCount/CharactersCount.js.map +1 -0
  37. package/components/shared/CharactersCount/CharactersCount.spec.d.ts +1 -0
  38. package/components/shared/CharactersCount/CharactersCount.spec.js +28 -0
  39. package/components/shared/CharactersCount/CharactersCount.spec.js.map +1 -0
  40. package/components/shared/Label/Label.js +1 -1
  41. package/components/shared/Label/Label.js.map +1 -1
  42. package/components/shared/Label/Label.spec.js +11 -3
  43. package/components/shared/Label/Label.spec.js.map +1 -1
  44. package/components/shared/utils/getCharactersCountId.d.ts +4 -0
  45. package/components/shared/utils/getCharactersCountId.js +10 -0
  46. package/components/shared/utils/getCharactersCountId.js.map +1 -0
  47. package/components/type.d.ts +3 -3
  48. package/esm/components/Datepicker/Datepicker.js +1 -1
  49. package/esm/components/Datepicker/Datepicker.js.map +1 -1
  50. package/esm/components/Duration/Duration.js +3 -2
  51. package/esm/components/Duration/Duration.js.map +1 -1
  52. package/esm/components/Duration/durationUtils.d.ts +0 -1
  53. package/esm/components/Duration/durationUtils.js.map +1 -1
  54. package/esm/components/Duration/getDurationFromValue.d.ts +3 -2
  55. package/esm/components/Duration/getDurationFromValue.js.map +1 -1
  56. package/esm/components/Input/Input.js +6 -3
  57. package/esm/components/Input/Input.js.map +1 -1
  58. package/esm/components/Input/Input.spec.js +25 -0
  59. package/esm/components/Input/Input.spec.js.map +1 -1
  60. package/esm/components/InputNumber/InputNumber.js +1 -1
  61. package/esm/components/InputNumber/InputNumber.js.map +1 -1
  62. package/esm/components/InputNumber/InputNumber.spec.js +9 -1
  63. package/esm/components/InputNumber/InputNumber.spec.js.map +1 -1
  64. package/esm/components/InputNumber/InputNumberThousand.d.ts +2 -1
  65. package/esm/components/InputNumber/InputNumberThousand.js +8 -2
  66. package/esm/components/InputNumber/InputNumberThousand.js.map +1 -1
  67. package/esm/components/Loop/Loop.js +1 -1
  68. package/esm/components/Loop/Loop.js.map +1 -1
  69. package/esm/components/Loop/Loop.spec.d.ts +1 -0
  70. package/esm/components/Loop/Loop.spec.js +37 -0
  71. package/esm/components/Loop/Loop.spec.js.map +1 -0
  72. package/esm/components/Roundabout/CustomRoundabout.d.ts +1 -1
  73. package/esm/components/Roundabout/CustomRoundabout.js +4 -3
  74. package/esm/components/Roundabout/CustomRoundabout.js.map +1 -1
  75. package/esm/components/Roundabout/roundabout.spec.js +3 -1
  76. package/esm/components/Roundabout/roundabout.spec.js.map +1 -1
  77. package/esm/components/Textarea/Textarea.js +4 -1
  78. package/esm/components/Textarea/Textarea.js.map +1 -1
  79. package/esm/components/Textarea/Textarea.spec.js +13 -0
  80. package/esm/components/Textarea/Textarea.spec.js.map +1 -1
  81. package/esm/components/shared/CharactersCount/CharactersCount.d.ts +7 -0
  82. package/esm/components/shared/CharactersCount/CharactersCount.js +15 -0
  83. package/esm/components/shared/CharactersCount/CharactersCount.js.map +1 -0
  84. package/esm/components/shared/CharactersCount/CharactersCount.spec.d.ts +1 -0
  85. package/esm/components/shared/CharactersCount/CharactersCount.spec.js +26 -0
  86. package/esm/components/shared/CharactersCount/CharactersCount.spec.js.map +1 -0
  87. package/esm/components/shared/Label/Label.js +1 -1
  88. package/esm/components/shared/Label/Label.js.map +1 -1
  89. package/esm/components/shared/Label/Label.spec.js +11 -3
  90. package/esm/components/shared/Label/Label.spec.js.map +1 -1
  91. package/esm/components/shared/utils/getCharactersCountId.d.ts +4 -0
  92. package/esm/components/shared/utils/getCharactersCountId.js +7 -0
  93. package/esm/components/shared/utils/getCharactersCountId.js.map +1 -0
  94. package/esm/components/type.d.ts +3 -3
  95. package/esm/index.d.ts +0 -1
  96. package/esm/index.js +0 -1
  97. package/esm/index.js.map +1 -1
  98. package/esm/main.css +20 -0
  99. package/esm/main.css.map +1 -1
  100. package/esm/stories/overview/sourceWithHierarchy.json +5151 -0
  101. package/esm/tests/utils/lunatic.d.ts +0 -4
  102. package/esm/tests/utils/lunatic.js +0 -4
  103. package/esm/tests/utils/lunatic.js.map +1 -1
  104. package/esm/type.source.d.ts +6 -6
  105. package/esm/type.source.js +0 -1
  106. package/esm/type.source.js.map +1 -1
  107. package/esm/use-lunatic/commons/fill-components/fill-components.d.ts +2 -0
  108. package/esm/use-lunatic/commons/fill-components/fill-components.js +1 -1
  109. package/esm/use-lunatic/commons/fill-components/fill-components.js.map +1 -1
  110. package/esm/use-lunatic/commons/page.js +8 -0
  111. package/esm/use-lunatic/commons/page.js.map +1 -1
  112. package/esm/use-lunatic/commons/variables/behaviours/cleaning-behaviour.d.ts +1 -1
  113. package/esm/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js +111 -14
  114. package/esm/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js.map +1 -1
  115. package/esm/use-lunatic/commons/variables/behaviours/resizing-behaviour.js +3 -3
  116. package/esm/use-lunatic/commons/variables/behaviours/resizing-behaviour.js.map +1 -1
  117. package/esm/use-lunatic/commons/variables/get-questionnaire-data.js +0 -8
  118. package/esm/use-lunatic/commons/variables/get-questionnaire-data.js.map +1 -1
  119. package/esm/use-lunatic/commons/variables/lunatic-variables-store.d.ts +2 -2
  120. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js +5 -3
  121. package/esm/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  122. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js +181 -9
  123. package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  124. package/esm/use-lunatic/hooks/use-page-has-response.js +50 -35
  125. package/esm/use-lunatic/hooks/use-page-has-response.js.map +1 -1
  126. package/esm/use-lunatic/hooks/useOverview.d.ts +1 -1
  127. package/esm/use-lunatic/hooks/useOverview.js +19 -14
  128. package/esm/use-lunatic/hooks/useOverview.js.map +1 -1
  129. package/esm/use-lunatic/hooks/useOverview.spec.d.ts +1 -0
  130. package/esm/use-lunatic/hooks/useOverview.spec.js +38 -0
  131. package/esm/use-lunatic/hooks/useOverview.spec.js.map +1 -0
  132. package/esm/use-lunatic/props/getComponentTypeProps.d.ts +2 -1
  133. package/esm/use-lunatic/props/propOptions.d.ts +2 -1
  134. package/esm/use-lunatic/props/propOptions.js +23 -3
  135. package/esm/use-lunatic/props/propOptions.js.map +1 -1
  136. package/esm/use-lunatic/props/propOptions.spec.js +46 -5
  137. package/esm/use-lunatic/props/propOptions.spec.js.map +1 -1
  138. package/esm/use-lunatic/props/propValue.js +18 -6
  139. package/esm/use-lunatic/props/propValue.js.map +1 -1
  140. package/esm/use-lunatic/props/propValue.spec.js +97 -2
  141. package/esm/use-lunatic/props/propValue.spec.js.map +1 -1
  142. package/esm/use-lunatic/reducer/reducerInitializer.d.ts +2 -2
  143. package/esm/use-lunatic/reducer/reducerInitializer.js +25 -32
  144. package/esm/use-lunatic/reducer/reducerInitializer.js.map +1 -1
  145. package/esm/use-lunatic/test.utils.d.ts +2 -0
  146. package/esm/use-lunatic/test.utils.js +13 -0
  147. package/esm/use-lunatic/test.utils.js.map +1 -0
  148. package/esm/use-lunatic/type.d.ts +18 -8
  149. package/esm/use-lunatic/use-lunatic.d.ts +1 -2
  150. package/esm/use-lunatic/use-lunatic.js +2 -3
  151. package/esm/use-lunatic/use-lunatic.js.map +1 -1
  152. package/esm/utils/cast.d.ts +19 -0
  153. package/esm/utils/cast.js +63 -0
  154. package/esm/utils/cast.js.map +1 -0
  155. package/esm/utils/constants/variable-status.d.ts +0 -4
  156. package/esm/utils/constants/variable-status.js +0 -4
  157. package/esm/utils/constants/variable-status.js.map +1 -1
  158. package/esm/utils/variables.spec.js +0 -8
  159. package/esm/utils/variables.spec.js.map +1 -1
  160. package/index.d.ts +0 -1
  161. package/index.js +1 -3
  162. package/index.js.map +1 -1
  163. package/main.css +20 -0
  164. package/main.css.map +1 -1
  165. package/package.json +60 -69
  166. package/src/components/Datepicker/Datepicker.tsx +1 -1
  167. package/src/components/Datepicker/__snapshots__/Datepicker.spec.tsx.snap +2 -2
  168. package/src/components/Duration/Duration.test.tsx +52 -0
  169. package/src/components/Duration/Duration.tsx +17 -4
  170. package/src/components/Duration/durationUtils.ts +0 -2
  171. package/src/components/Duration/getDurationFromValue.ts +4 -3
  172. package/src/components/Input/Input.spec.tsx +34 -0
  173. package/src/components/Input/Input.tsx +26 -18
  174. package/src/components/Input/__snapshots__/Input.spec.tsx.snap +38 -19
  175. package/src/components/InputNumber/InputNumber.spec.tsx +15 -1
  176. package/src/components/InputNumber/InputNumber.tsx +1 -0
  177. package/src/components/InputNumber/InputNumberThousand.tsx +11 -1
  178. package/src/components/Loop/Loop.spec.tsx +77 -0
  179. package/src/components/Loop/Loop.tsx +1 -1
  180. package/src/components/RosterForLoop/__snapshots__/RosterForLoop.spec.tsx.snap +42 -20
  181. package/src/components/Roundabout/CustomRoundabout.tsx +13 -4
  182. package/src/components/Roundabout/roundabout.spec.tsx +3 -0
  183. package/src/components/Textarea/Textarea.spec.tsx +18 -0
  184. package/src/components/Textarea/Textarea.tsx +21 -13
  185. package/src/components/Textarea/__snapshots__/Textarea.spec.tsx.snap +21 -11
  186. package/src/components/shared/CharactersCount/CharactersCount.spec.tsx +31 -0
  187. package/src/components/shared/CharactersCount/CharactersCount.tsx +27 -0
  188. package/src/components/shared/Label/Label.spec.tsx +15 -3
  189. package/src/components/shared/Label/Label.tsx +1 -1
  190. package/src/components/shared/utils/getCharactersCountId.test.ts +14 -0
  191. package/src/components/shared/utils/getCharactersCountId.ts +6 -0
  192. package/src/components/type.ts +3 -2
  193. package/src/css/components/Input.scss +10 -0
  194. package/src/css/components/Roundabout.scss +10 -0
  195. package/src/index.ts +0 -1
  196. package/src/stories/accordion/source.json +1 -5
  197. package/src/stories/behaviour/cleaning/cleaning.stories.jsx +11 -0
  198. package/src/stories/behaviour/cleaning/loop.json +246 -0
  199. package/src/stories/behaviour/cleaning/source-loop.json +3 -15
  200. package/src/stories/behaviour/cleaning/source.json +2 -10
  201. package/src/stories/behaviour/controls/boucles-n.json +2 -10
  202. package/src/stories/behaviour/controls/loop.json +2 -10
  203. package/src/stories/behaviour/controls/roundabout.json +3 -15
  204. package/src/stories/behaviour/controls/simple-numeric.json +19 -95
  205. package/src/stories/behaviour/controls/simple.json +7 -35
  206. package/src/stories/behaviour/filter/dataLoop.json +0 -8
  207. package/src/stories/behaviour/filter/source.json +0 -12
  208. package/src/stories/behaviour/filter/sourceLoop.json +0 -12
  209. package/src/stories/behaviour/missing/source.json +12 -60
  210. package/src/stories/behaviour/others/V2_DeclarationsSimples.json +14 -70
  211. package/src/stories/behaviour/others/V2_MinMaxSum_Boucles.json +5 -25
  212. package/src/stories/behaviour/others/V2_QuestSimple_Boucles.json +107 -535
  213. package/src/stories/behaviour/others/V2_TCMRallyeGames.json +33 -165
  214. package/src/stories/behaviour/others/test-dylan.json +5 -25
  215. package/src/stories/behaviour/paste/source.json +1 -5
  216. package/src/stories/behaviour/performance/performance.stories.jsx +2 -2
  217. package/src/stories/behaviour/performance/source.json +4 -20
  218. package/src/stories/behaviour/resizing/source-resizing-cleaning.json +2 -10
  219. package/src/stories/behaviour/resizing/source.json +5 -25
  220. package/src/stories/checkbox-boolean/source.json +1 -5
  221. package/src/stories/checkbox-group/source.json +16 -80
  222. package/src/stories/checkbox-group/sourceCondition.json +3 -15
  223. package/src/stories/checkbox-group/sourceDetail.json +18 -90
  224. package/src/stories/checkbox-group/sourceLoop.json +2 -10
  225. package/src/stories/checkbox-one/source.json +1 -5
  226. package/src/stories/checkbox-one/sourceDetail.json +2 -10
  227. package/src/stories/date-picker/source.json +1 -5
  228. package/src/stories/declaration/source.json +2 -10
  229. package/src/stories/disabled/data.json +0 -16
  230. package/src/stories/disabled/source.json +7 -35
  231. package/src/stories/dropdown/data.json +2 -10
  232. package/src/stories/dropdown/source.json +2 -10
  233. package/src/stories/duration/mois.json +1 -5
  234. package/src/stories/duration/time.json +1 -5
  235. package/src/stories/filter-description/source-options.json +3 -15
  236. package/src/stories/input/source.json +1 -5
  237. package/src/stories/input-number/input-number.stories.jsx +5 -0
  238. package/src/stories/input-number/source-big-number.json +27 -0
  239. package/src/stories/input-number/source-euro.json +2 -6
  240. package/src/stories/input-number/source.json +1 -5
  241. package/src/stories/loop/source-bloc.json +2 -10
  242. package/src/stories/loop/source-paginated.json +2 -10
  243. package/src/stories/loop/source-roster.json +2 -10
  244. package/src/stories/loop/source-with-header.json +2 -10
  245. package/src/stories/overview/dataLoop.json +24 -120
  246. package/src/stories/overview/overview.stories.jsx +9 -0
  247. package/src/stories/overview/source.json +1 -5
  248. package/src/stories/overview/sourceLoop.json +24 -120
  249. package/src/stories/overview/sourceWithHierarchy.json +164 -820
  250. package/src/stories/pairwise/source.json +5 -25
  251. package/src/stories/question/source.json +2 -10
  252. package/src/stories/questionnaires/logement/data.json +0 -1288
  253. package/src/stories/questionnaires/logement/source-sequence.json +564 -2820
  254. package/src/stories/questionnaires/logement/source-sum.json +280 -1400
  255. package/src/stories/questionnaires/logement/source.json +564 -2820
  256. package/src/stories/questionnaires/recensement/source.json +106 -530
  257. package/src/stories/questionnaires/rp/source.json +8 -40
  258. package/src/stories/questionnaires/simpsons/source.json +104 -520
  259. package/src/stories/radio/source.json +1 -5
  260. package/src/stories/radio/sourceCondition.json +2 -10
  261. package/src/stories/radio/sourceDetail.json +2 -10
  262. package/src/stories/radio/sourceHorizontal.json +1 -5
  263. package/src/stories/roundabout/data1.json +0 -12
  264. package/src/stories/roundabout/data2.json +0 -16
  265. package/src/stories/roundabout/source.json +11 -35
  266. package/src/stories/suggester/source-arbitrary-response.json +6 -30
  267. package/src/stories/suggester/source-error.json +6 -30
  268. package/src/stories/suggester/source-multiline.json +0 -16
  269. package/src/stories/suggester/source-option-responses.json +5 -25
  270. package/src/stories/suggester/source.json +7 -35
  271. package/src/stories/summary/data.json +0 -16
  272. package/src/stories/summary/source.json +7 -35
  273. package/src/stories/switch/data-forced.json +2 -10
  274. package/src/stories/switch/source.json +4 -20
  275. package/src/stories/table/source-colspan.json +8 -40
  276. package/src/stories/table/table-dynamique.json +1 -5
  277. package/src/stories/text/source-roster.json +3 -15
  278. package/src/stories/text/source-table.json +9 -45
  279. package/src/stories/textarea/source.json +1 -5
  280. package/src/stories/utils/{SchemaValidator.tsx → SchemaValidator.jsx} +1 -1
  281. package/src/stories/utils/{orchestrator.tsx → orchestrator.jsx} +9 -13
  282. package/src/stories/utils/{overview.tsx → overview.jsx} +0 -2
  283. package/src/tests/utils/lunatic.ts +0 -4
  284. package/src/type.source.ts +8 -7
  285. package/src/use-lunatic/__snapshots__/use-lunatic.test.ts.snap +0 -1159
  286. package/src/use-lunatic/commons/fill-components/fill-components.ts +4 -1
  287. package/src/use-lunatic/commons/page.ts +10 -0
  288. package/src/use-lunatic/commons/variables/behaviours/cleaning-behaviour.ts +182 -24
  289. package/src/use-lunatic/commons/variables/behaviours/resizing-behaviour.ts +2 -5
  290. package/src/use-lunatic/commons/variables/get-questionnaire-data.ts +0 -12
  291. package/src/use-lunatic/commons/variables/lunatic-variables-store.spec.ts +207 -9
  292. package/src/use-lunatic/commons/variables/lunatic-variables-store.ts +7 -4
  293. package/src/use-lunatic/hooks/use-page-has-response.test.ts +200 -0
  294. package/src/use-lunatic/hooks/use-page-has-response.ts +67 -44
  295. package/src/use-lunatic/hooks/useOverview.spec.ts +42 -0
  296. package/src/use-lunatic/hooks/useOverview.ts +41 -18
  297. package/src/use-lunatic/props/propOptions.spec.ts +71 -5
  298. package/src/use-lunatic/props/propOptions.ts +23 -3
  299. package/src/use-lunatic/props/propValue.spec.ts +105 -2
  300. package/src/use-lunatic/props/propValue.ts +26 -8
  301. package/src/use-lunatic/reducer/reducerInitializer.tsx +31 -41
  302. package/src/use-lunatic/test.utils.ts +17 -0
  303. package/src/use-lunatic/type.ts +18 -8
  304. package/src/use-lunatic/use-lunatic.test.ts +15 -44
  305. package/src/use-lunatic/use-lunatic.ts +7 -7
  306. package/src/utils/cast.ts +67 -0
  307. package/src/utils/constants/variable-status.ts +0 -4
  308. package/src/utils/variables.spec.ts +0 -8
  309. package/stories/overview/sourceWithHierarchy.json +5151 -0
  310. package/tests/utils/lunatic.d.ts +0 -4
  311. package/tests/utils/lunatic.js +0 -4
  312. package/tests/utils/lunatic.js.map +1 -1
  313. package/tsconfig.build.tsbuildinfo +1 -1
  314. package/type.source.d.ts +6 -6
  315. package/type.source.js +0 -1
  316. package/type.source.js.map +1 -1
  317. package/use-lunatic/commons/fill-components/fill-components.d.ts +2 -0
  318. package/use-lunatic/commons/fill-components/fill-components.js +1 -1
  319. package/use-lunatic/commons/fill-components/fill-components.js.map +1 -1
  320. package/use-lunatic/commons/page.js +8 -0
  321. package/use-lunatic/commons/page.js.map +1 -1
  322. package/use-lunatic/commons/variables/behaviours/cleaning-behaviour.d.ts +1 -1
  323. package/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js +111 -14
  324. package/use-lunatic/commons/variables/behaviours/cleaning-behaviour.js.map +1 -1
  325. package/use-lunatic/commons/variables/behaviours/resizing-behaviour.js +3 -3
  326. package/use-lunatic/commons/variables/behaviours/resizing-behaviour.js.map +1 -1
  327. package/use-lunatic/commons/variables/get-questionnaire-data.js +0 -8
  328. package/use-lunatic/commons/variables/get-questionnaire-data.js.map +1 -1
  329. package/use-lunatic/commons/variables/lunatic-variables-store.d.ts +2 -2
  330. package/use-lunatic/commons/variables/lunatic-variables-store.js +5 -3
  331. package/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
  332. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js +204 -9
  333. package/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
  334. package/use-lunatic/hooks/use-page-has-response.js +49 -34
  335. package/use-lunatic/hooks/use-page-has-response.js.map +1 -1
  336. package/use-lunatic/hooks/useOverview.d.ts +1 -1
  337. package/use-lunatic/hooks/useOverview.js +19 -14
  338. package/use-lunatic/hooks/useOverview.js.map +1 -1
  339. package/use-lunatic/hooks/useOverview.spec.d.ts +1 -0
  340. package/use-lunatic/hooks/useOverview.spec.js +43 -0
  341. package/use-lunatic/hooks/useOverview.spec.js.map +1 -0
  342. package/use-lunatic/props/getComponentTypeProps.d.ts +2 -1
  343. package/use-lunatic/props/propOptions.d.ts +2 -1
  344. package/use-lunatic/props/propOptions.js +23 -3
  345. package/use-lunatic/props/propOptions.js.map +1 -1
  346. package/use-lunatic/props/propOptions.spec.js +46 -5
  347. package/use-lunatic/props/propOptions.spec.js.map +1 -1
  348. package/use-lunatic/props/propValue.js +18 -6
  349. package/use-lunatic/props/propValue.js.map +1 -1
  350. package/use-lunatic/props/propValue.spec.js +97 -2
  351. package/use-lunatic/props/propValue.spec.js.map +1 -1
  352. package/use-lunatic/reducer/reducerInitializer.d.ts +2 -2
  353. package/use-lunatic/reducer/reducerInitializer.js +25 -32
  354. package/use-lunatic/reducer/reducerInitializer.js.map +1 -1
  355. package/use-lunatic/test.utils.d.ts +2 -0
  356. package/use-lunatic/test.utils.js +17 -0
  357. package/use-lunatic/test.utils.js.map +1 -0
  358. package/use-lunatic/type.d.ts +18 -8
  359. package/use-lunatic/use-lunatic.d.ts +1 -2
  360. package/use-lunatic/use-lunatic.js +2 -3
  361. package/use-lunatic/use-lunatic.js.map +1 -1
  362. package/utils/cast.d.ts +19 -0
  363. package/utils/cast.js +70 -0
  364. package/utils/cast.js.map +1 -0
  365. package/utils/constants/variable-status.d.ts +0 -4
  366. package/utils/constants/variable-status.js +1 -5
  367. package/utils/constants/variable-status.js.map +1 -1
  368. package/utils/variables.spec.js +0 -8
  369. package/utils/variables.spec.js.map +1 -1
  370. package/constants/component-types.d.ts +0 -1
  371. package/constants/component-types.js +0 -5
  372. package/constants/component-types.js.map +0 -1
  373. package/constants/declarations.d.ts +0 -9
  374. package/constants/declarations.js +0 -15
  375. package/constants/declarations.js.map +0 -1
  376. package/constants/event-types.d.ts +0 -10
  377. package/constants/event-types.js +0 -16
  378. package/constants/event-types.js.map +0 -1
  379. package/constants/index.d.ts +0 -5
  380. package/constants/index.js +0 -22
  381. package/constants/index.js.map +0 -1
  382. package/constants/indexedDBStore.d.ts +0 -21
  383. package/constants/indexedDBStore.js +0 -22
  384. package/constants/indexedDBStore.js.map +0 -1
  385. package/constants/supported-preferences.d.ts +0 -1
  386. package/constants/supported-preferences.js +0 -36
  387. package/constants/supported-preferences.js.map +0 -1
  388. package/constants/value-types.d.ts +0 -5
  389. package/constants/value-types.js +0 -9
  390. package/constants/value-types.js.map +0 -1
  391. package/constants/variable-types.d.ts +0 -2
  392. package/constants/variable-types.js +0 -8
  393. package/constants/variable-types.js.map +0 -1
  394. package/esm/constants/component-types.d.ts +0 -1
  395. package/esm/constants/component-types.js +0 -2
  396. package/esm/constants/component-types.js.map +0 -1
  397. package/esm/constants/declarations.d.ts +0 -9
  398. package/esm/constants/declarations.js +0 -12
  399. package/esm/constants/declarations.js.map +0 -1
  400. package/esm/constants/event-types.d.ts +0 -10
  401. package/esm/constants/event-types.js +0 -13
  402. package/esm/constants/event-types.js.map +0 -1
  403. package/esm/constants/index.d.ts +0 -5
  404. package/esm/constants/index.js +0 -6
  405. package/esm/constants/index.js.map +0 -1
  406. package/esm/constants/indexedDBStore.d.ts +0 -21
  407. package/esm/constants/indexedDBStore.js +0 -19
  408. package/esm/constants/indexedDBStore.js.map +0 -1
  409. package/esm/constants/supported-preferences.d.ts +0 -1
  410. package/esm/constants/supported-preferences.js +0 -10
  411. package/esm/constants/supported-preferences.js.map +0 -1
  412. package/esm/constants/value-types.d.ts +0 -5
  413. package/esm/constants/value-types.js +0 -6
  414. package/esm/constants/value-types.js.map +0 -1
  415. package/esm/constants/variable-types.d.ts +0 -2
  416. package/esm/constants/variable-types.js +0 -5
  417. package/esm/constants/variable-types.js.map +0 -1
  418. package/esm/utils/getArticulation.d.ts +0 -58
  419. package/esm/utils/getArticulation.js +0 -78
  420. package/esm/utils/getArticulation.js.map +0 -1
  421. package/src/constants/component-types.ts +0 -1
  422. package/src/constants/declarations.ts +0 -14
  423. package/src/constants/event-types.ts +0 -13
  424. package/src/constants/index.ts +0 -5
  425. package/src/constants/indexedDBStore.ts +0 -20
  426. package/src/constants/supported-preferences.ts +0 -10
  427. package/src/constants/value-types.ts +0 -5
  428. package/src/constants/variable-types.ts +0 -4
  429. package/src/stories/behaviour/articulation/articulation.stories.tsx +0 -108
  430. package/src/stories/behaviour/articulation/roundabout.json +0 -348
  431. package/src/utils/getArticulation.ts +0 -117
  432. package/utils/getArticulation.d.ts +0 -58
  433. package/utils/getArticulation.js +0 -77
  434. package/utils/getArticulation.js.map +0 -1
@@ -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,78 +0,0 @@
1
- import { reducerInitializer } from '../use-lunatic/reducer/reducerInitializer';
2
- import { times } from './array';
3
- import { forceInt } from './number';
4
- /**
5
- * Retrieve the articulation state
6
- *
7
- * ## Why this hook
8
- *
9
- * The goal of this hook is to provide insights about a roundabout using extra information inserted in the JSON source
10
- * provided to Lunatic.
11
- *
12
- * For instance
13
- *
14
- * ```
15
- * "articulation": {
16
- * "source": "roundabout",
17
- * "items": [
18
- * {
19
- * "label": "Prénom",
20
- * "value": "PRENOMS"
21
- * },
22
- * {
23
- * "label": "Sexe",
24
- * "value": "if SEXE = \"H\" then \"Homme\" else \"Femme\""
25
- * },
26
- * {
27
- * "label": "Age",
28
- * "value": "cast(AGE, string) || \" ans\""
29
- * }
30
- * ]
31
- * },
32
- * ```
33
- *
34
- * - source is the ID of the roundabout component
35
- * - items define the field to extract from the roundabout data
36
- */
37
- export function getArticulation(source, data) {
38
- var _a;
39
- const roundabout = findComponentById(source.components, source.articulation.source);
40
- const { variables } = reducerInitializer({ source, data });
41
- const iterations = forceInt(variables.run((_a = roundabout === null || roundabout === void 0 ? void 0 : roundabout.iterations.value) !== null && _a !== void 0 ? _a : '0'));
42
- const rows = times(iterations, (k) => source.articulation.items.map((item) => ({
43
- label: item.label,
44
- value: variables.run(item.value, { iteration: [k] }),
45
- })));
46
- if (!roundabout) {
47
- return {
48
- items: [],
49
- };
50
- }
51
- return {
52
- items: rows.map((row, k) => {
53
- var _a;
54
- return ({
55
- cells: row,
56
- progress: forceInt((_a = variables.get(roundabout.progressVariable, [k])) !== null && _a !== void 0 ? _a : -1),
57
- page: (roundabout.page
58
- ? `${roundabout.page}.1#${k + 1}`
59
- : '1'),
60
- });
61
- }),
62
- };
63
- }
64
- function findComponentById(components, id) {
65
- for (const c of components) {
66
- if ('id' in c && c.id === id && c.componentType === 'Roundabout') {
67
- return c;
68
- }
69
- if ('components' in c) {
70
- const child = findComponentById(c.components, id);
71
- if (child) {
72
- return child;
73
- }
74
- }
75
- }
76
- return null;
77
- }
78
- //# sourceMappingURL=getArticulation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getArticulation.js","sourceRoot":"","sources":["../../src/utils/getArticulation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAqBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,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,kBAAkB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,QAAQ,CAC1B,SAAS,CAAC,GAAG,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,CAAC,KAAK,mCAAI,GAAG,CAAC,CAClD,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,CAAC,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;;YAAC,OAAA,CAAC;gBAC5B,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,QAAQ,CAAC,MAAA,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC;gBACzE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI;oBACrB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;oBACjC,CAAC,CAAC,GAAG,CAAY;aAClB,CAAC,CAAA;SAAA,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"}
@@ -1 +0,0 @@
1
- export const CHECKBOX_GROUP = 'CheckboxGroup';
@@ -1,14 +0,0 @@
1
- // Declaration position
2
-
3
- export const BEFORE_QUESTION_TEXT = 'BEFORE_QUESTION_TEXT';
4
- export const AFTER_QUESTION_TEXT = 'AFTER_QUESTION_TEXT';
5
- export const DETACHABLE = 'DETACHABLE';
6
-
7
- // Declaration types
8
-
9
- export const INSTRUCTION = 'INSTRUCTION';
10
- export const COMMENT = 'COMMENT';
11
- export const HELP = 'HELP';
12
- export const WARNING = 'WARNING';
13
- export const MESSAGE_FILTER = 'MESSAGE_FILTER';
14
- export const STATEMENT = 'STATEMENT';
@@ -1,13 +0,0 @@
1
- // Event types for paradata
2
- export const EVENT_FOCUS_IN = 'focus-in';
3
- export const EVENT_FOCUS_OUT = 'focus-out';
4
- export const EVENT_SELECTION = 'selection';
5
- export const EVENT_CLICK = 'click';
6
- export const EVENT_VALUE_CHANGE = 'value-changed';
7
-
8
- // Category of object
9
- export const INPUT_CATEGORY = 'lunatic-input';
10
- export const BUTTON_CATEGORY = 'lunatic-button';
11
- export const LINK_CATEGORY = 'lunatic-link';
12
- export const TOOLTIP_CATEGORY = 'lunatic-tooltip';
13
- export const CALCULATED_VAR_CATEGORY = 'lunatic-calculated-var';
@@ -1,5 +0,0 @@
1
- export * from './component-types';
2
- export * from './declarations';
3
- export * from './value-types';
4
- export * from './variable-types';
5
- export * from './event-types';
@@ -1,20 +0,0 @@
1
- export const STORE_DATA_NAME = 'store/entities';
2
- export const STORE_INFO_NAME = 'store/info';
3
- export const STORE_INDEX_NAME = 'store/entities/index';
4
- export const STORE_INDEX_PATH = 'searching';
5
- export const MAX_STRING = String.fromCharCode(65535);
6
- export const SEARCH_TYPES = {
7
- prefix: 'search/prefix',
8
- tokens: 'search/tokens',
9
- };
10
-
11
- const IndexedDBStore = {
12
- STORE_DATA_NAME,
13
- STORE_INDEX_NAME,
14
- STORE_INDEX_PATH,
15
- MAX_STRING,
16
- SEARCH_TYPES,
17
- STORE_INFO_NAME,
18
- };
19
-
20
- export default IndexedDBStore;
@@ -1,10 +0,0 @@
1
- import * as C from './value-types';
2
-
3
- // ORDERED ARRAY
4
- export const supportedPreferences = [
5
- C.PREVIOUS,
6
- C.COLLECTED,
7
- C.FORCED,
8
- C.EDITED,
9
- C.INPUTTED,
10
- ];
@@ -1,5 +0,0 @@
1
- export const PREVIOUS = 'PREVIOUS';
2
- export const COLLECTED = 'COLLECTED';
3
- export const FORCED = 'FORCED';
4
- export const EDITED = 'EDITED';
5
- export const INPUTTED = 'INPUTTED';
@@ -1,4 +0,0 @@
1
- export const EXTERNAL = 'EXTERNAL' as const;
2
- export const CALCULATED = 'CALCULATED' as const;
3
- // Already define in value-types
4
- //export const COLLECTED = 'COLLECTED';
@@ -1,108 +0,0 @@
1
- import Orchestrator from '../../utils/orchestrator';
2
- import source from './roundabout.json';
3
- import type { Meta, StoryObj } from '@storybook/react';
4
- import { useMemo, useState } from 'react';
5
- import { getArticulation } from '../../../utils/getArticulation';
6
-
7
- type Source = Parameters<typeof getArticulation>[0];
8
- type Data = Parameters<typeof getArticulation>[1];
9
-
10
- type Props = {
11
- source: Source;
12
- data: Data;
13
- };
14
-
15
- function StoryComponent({ source, data }: Props) {
16
- const [page, setPage] = useState(null as null | string);
17
- const gotoNav = () => setPage(null);
18
- const { items } = useMemo(
19
- () => getArticulation(source, data),
20
- [source, data]
21
- );
22
-
23
- if (page) {
24
- return (
25
- <div>
26
- {page}
27
- <button onClick={gotoNav}>&lt; Revenir à l'articulation</button>
28
- {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}
29
- {/*/ @ts-ignore */}
30
- <Orchestrator source={source} data={data} initialPage={page} />
31
- </div>
32
- );
33
- }
34
-
35
- const progressLabel = (n: number) => {
36
- if (n === -1) {
37
- return 'Commencer';
38
- }
39
- if (n === 0) {
40
- return 'Continuer';
41
- }
42
- return 'Complété';
43
- };
44
-
45
- return (
46
- <div>
47
- <h2>Articulation</h2>
48
- <table style={{ borderCollapse: 'collapse' }}>
49
- <thead>
50
- <tr>
51
- {items[0].cells.map((cell, k) => (
52
- <th
53
- style={{ border: 'solid 1px #00000024', padding: '.5rem 1rem' }}
54
- key={k}
55
- >
56
- {cell.label}
57
- </th>
58
- ))}
59
- <th>Actions</th>
60
- </tr>
61
- </thead>
62
- <tbody>
63
- {items.map((item, k) => (
64
- <tr key={k}>
65
- {item.cells.map((cell, kk) => (
66
- <td
67
- key={kk}
68
- style={{
69
- border: 'solid 1px #00000024',
70
- padding: '.5rem 1rem',
71
- }}
72
- >
73
- {cell.value}
74
- </td>
75
- ))}
76
- <td
77
- style={{
78
- border: 'solid 1px #00000024',
79
- padding: '.5rem 1rem',
80
- }}
81
- >
82
- <button onClick={() => console.log('ToDo')}>
83
- {progressLabel(item.progress)}
84
- </button>
85
- </td>
86
- </tr>
87
- ))}
88
- </tbody>
89
- </table>
90
- </div>
91
- );
92
- }
93
-
94
- const meta: Meta<typeof StoryComponent> = {
95
- title: 'Behaviour/Articulation',
96
- component: StoryComponent,
97
- };
98
-
99
- export default meta;
100
-
101
- type Story = StoryObj<typeof StoryComponent>;
102
-
103
- export const Basic: Story = {
104
- args: {
105
- source: source as Source,
106
- data: {},
107
- },
108
- };
@@ -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
- }