@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
@@ -5,12 +5,17 @@ exports[`Textarea > renders without crashing 1`] = `
5
5
  <div
6
6
  class="lunatic-textarea"
7
7
  >
8
- <textarea
9
- aria-invalid="false"
10
- id="input"
8
+ <div
9
+ class="field-with-count"
11
10
  >
12
- input
13
- </textarea>
11
+ <textarea
12
+ aria-invalid="false"
13
+ aria-labelledby="label-input"
14
+ id="input"
15
+ >
16
+ input
17
+ </textarea>
18
+ </div>
14
19
  </div>
15
20
  </div>
16
21
  `;
@@ -20,13 +25,18 @@ exports[`Textarea > should handle readOnly 1`] = `
20
25
  <div
21
26
  class="lunatic-textarea"
22
27
  >
23
- <textarea
24
- aria-invalid="false"
25
- id="textarea"
26
- readonly=""
28
+ <div
29
+ class="field-with-count"
27
30
  >
28
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
29
- </textarea>
31
+ <textarea
32
+ aria-invalid="false"
33
+ aria-labelledby="label-textarea"
34
+ id="textarea"
35
+ readonly=""
36
+ >
37
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
38
+ </textarea>
39
+ </div>
30
40
  </div>
31
41
  </div>
32
42
  `;
@@ -0,0 +1,31 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { CharactersCount } from './CharactersCount';
3
+ import { render } from '@testing-library/react';
4
+
5
+ describe('CharactersCount', () => {
6
+ const defaultProps = {
7
+ id: 'test-id',
8
+ maxLength: 20,
9
+ value: 'Hello',
10
+ };
11
+
12
+ it('renders correctly characters count if there is a maximum length', () => {
13
+ const { getByText } = render(<CharactersCount {...defaultProps} />);
14
+
15
+ expect(getByText('5/20')).toBeInTheDocument();
16
+ });
17
+
18
+ it('should apply the max-length-reached class when limit is reached', () => {
19
+ const props = { ...defaultProps, maxLength: 5 };
20
+ const { getByText } = render(<CharactersCount {...props} />);
21
+
22
+ expect(getByText('5/5')).toHaveClass('max-length-reached');
23
+ });
24
+
25
+ it('should not render anything when maxLength is not provided', () => {
26
+ const props = { ...defaultProps, maxLength: undefined };
27
+ const { container } = render(<CharactersCount {...props} />);
28
+
29
+ expect(container.firstChild).toBeNull();
30
+ });
31
+ });
@@ -0,0 +1,27 @@
1
+ import classNames from 'classnames';
2
+ import { getCharactersCountId } from '../utils/getCharactersCountId';
3
+
4
+ type Props = {
5
+ id: string;
6
+ maxLength?: number;
7
+ value?: string | null;
8
+ };
9
+
10
+ export function CharactersCount({ id, maxLength, value }: Readonly<Props>) {
11
+ if (!maxLength) return null;
12
+
13
+ const currentLength = value?.length ?? 0;
14
+ const charactersCountId = getCharactersCountId(id, maxLength);
15
+ const hasReachedMaxLength = currentLength === maxLength;
16
+
17
+ return (
18
+ <span
19
+ id={charactersCountId}
20
+ className={classNames('characters-count', {
21
+ 'max-length-reached': hasReachedMaxLength,
22
+ })}
23
+ >
24
+ {`${currentLength}/${maxLength}`}
25
+ </span>
26
+ );
27
+ }
@@ -3,9 +3,9 @@ import { Label } from './Label';
3
3
  import { describe, it, expect } from 'vitest';
4
4
 
5
5
  describe('Label', () => {
6
- it('renders null when children is falsy', () => {
6
+ it('renders null when children and description are falsy', () => {
7
7
  const { container } = render(
8
- <Label htmlFor="input" id="label" description="This is a label">
8
+ <Label htmlFor="input" id="label">
9
9
  {null}
10
10
  </Label>
11
11
  );
@@ -34,8 +34,20 @@ describe('Label', () => {
34
34
 
35
35
  const label = getByText('Name');
36
36
  expect(label).toBeInTheDocument();
37
- expect(label.parentNode).toHaveAttribute('for', 'kze792d8');
37
+ expect(label.closest('label')).toHaveAttribute('for', 'kze792d8');
38
38
  const description = queryByText('This is a label');
39
39
  expect(description).not.toBeInTheDocument();
40
40
  });
41
+
42
+ it('renders a label with description and no label', () => {
43
+ const { container, queryByText } = render(
44
+ <Label htmlFor="kze792d8" id="label" description="This is a label" />
45
+ );
46
+
47
+ const label = container.querySelector('label');
48
+ expect(label).toBeInTheDocument();
49
+ expect(label).toHaveAttribute('for', 'kze792d8');
50
+ const description = queryByText('This is a label');
51
+ expect(description).toBeInTheDocument();
52
+ });
41
53
  });
@@ -27,7 +27,7 @@ function LunaticLabel({
27
27
  style,
28
28
  description,
29
29
  }: Props) {
30
- if (!children) {
30
+ if (!children && !description) {
31
31
  return null;
32
32
  }
33
33
  return (
@@ -0,0 +1,14 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { getCharactersCountId } from './getCharactersCountId';
3
+
4
+ describe('getCharacterCountId', () => {
5
+ it('should return the correct ID when maxLength is provided', () => {
6
+ expect(getCharactersCountId('test-id', 100)).toBe(
7
+ 'characters-count-test-id'
8
+ );
9
+ });
10
+
11
+ it('should return undefined when maxLength is not provided', () => {
12
+ expect(getCharactersCountId('test-id')).toBeUndefined();
13
+ });
14
+ });
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Get the correct id for characters count div, used for both input and textarea.
3
+ */
4
+ export function getCharactersCountId(id: string, maxLength?: number) {
5
+ return maxLength ? `characters-count-${id}` : undefined;
6
+ }
@@ -9,7 +9,7 @@ import type {
9
9
  } from '../use-lunatic/type';
10
10
  import type { InterpretedOption } from '../use-lunatic/props/propOptions';
11
11
 
12
- type Formats = 'PTnHnM' | 'PnYnM';
12
+ export type DurationFormat = 'PTnHnM' | 'PnYnM';
13
13
  export type VtlExpression = {
14
14
  value: string;
15
15
  type: 'VTL' | 'VTL|MD' | 'TXT';
@@ -78,7 +78,7 @@ export type ComponentPropsByType = {
78
78
  };
79
79
  Duration: LunaticBaseProps<string | null> &
80
80
  LunaticExtraProps & {
81
- format: Formats;
81
+ format: DurationFormat;
82
82
  response: { name: string };
83
83
  componentType?: 'Duration';
84
84
  };
@@ -126,6 +126,7 @@ export type ComponentPropsByType = {
126
126
  components: LunaticComponentProps[];
127
127
  componentType?: 'Question';
128
128
  iteration?: number;
129
+ value: Record<string, unknown>;
129
130
  };
130
131
  RosterForLoop: LunaticBaseProps<unknown> &
131
132
  LunaticExtraProps & {
@@ -43,3 +43,13 @@
43
43
  }
44
44
  }
45
45
  }
46
+
47
+ .characters-count {
48
+ display: block;
49
+ font-size: 12px;
50
+ padding-top: 0.3rem;
51
+ }
52
+
53
+ .max-length-reached {
54
+ color: red;
55
+ }
@@ -1,3 +1,13 @@
1
+ .lunatic-roundabout__label {
2
+ color: var(--color-primary-dark);
3
+ background-color: var(--color-primary-contrast-text);
4
+ border: 0;
5
+ padding: 0;
6
+ font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;
7
+ font-weight: bold;
8
+ margin-bottom: 0.375rem;
9
+ }
10
+
1
11
  .lunatic-roundabout__items {
2
12
  margin-top: 1rem;
3
13
  display: flex;
package/src/index.ts CHANGED
@@ -8,7 +8,6 @@ export { Button } from './components/shared/Button/Button';
8
8
 
9
9
  export { LunaticComponents } from './components/LunaticComponents';
10
10
  export { useLunatic } from './use-lunatic/use-lunatic';
11
- export { getArticulation } from './utils/getArticulation';
12
11
 
13
12
  export type {
14
13
  LunaticComponentDefinition,
@@ -37,11 +37,7 @@
37
37
  "name": "NOM",
38
38
  "componentRef": "name",
39
39
  "values": {
40
- "PREVIOUS": null,
41
- "COLLECTED": null,
42
- "FORCED": null,
43
- "EDITED": null,
44
- "INPUTTED": null
40
+ "COLLECTED": null
45
41
  }
46
42
  }
47
43
  ]
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import Orchestrator from '../../utils/orchestrator';
3
3
  import source from './source.json';
4
4
  import sourceLoop from './source-loop.json';
5
+ import sourceLoop2 from './loop.json';
5
6
  import defaultArgTypes from '../../utils/default-arg-types';
6
7
 
7
8
  const stories = {
@@ -56,3 +57,13 @@ Loop.args = {
56
57
  pagination: true,
57
58
  source: sourceLoop,
58
59
  };
60
+
61
+ export const Loop2 = Template.bind({});
62
+ Loop2.args = {
63
+ id: 'cleaning-loop-2',
64
+ pagination: true,
65
+ source: sourceLoop2,
66
+ data: {
67
+ COLLECTED: { PRENOM: { COLLECTED: ['Laurent', 'Alain', 'toto'] } },
68
+ },
69
+ };
@@ -0,0 +1,246 @@
1
+ {
2
+ "id": "m8ilargw",
3
+ "componentType": "Questionnaire",
4
+ "modele": "LCCLEANING",
5
+ "generatingDate": "21-03-2025 13:49:55",
6
+ "pagination": "question",
7
+ "maxPage": "4",
8
+ "label": { "value": "[LC]: cleaning mixe de scope", "type": "VTL|MD" },
9
+ "components": [
10
+ {
11
+ "id": "m8illrg8",
12
+ "componentType": "Sequence",
13
+ "page": "1",
14
+ "label": { "value": "\"I - \" || \"S1\"", "type": "VTL" },
15
+ "conditionFilter": { "value": "true", "type": "VTL" }
16
+ },
17
+ {
18
+ "id": "question-m8ilsr46",
19
+ "componentType": "Question",
20
+ "page": "2",
21
+ "label": { "value": "\"1\\. \" || \"Prénoms ?\"", "type": "VTL|MD" },
22
+ "conditionFilter": { "value": "true", "type": "VTL" },
23
+ "components": [
24
+ {
25
+ "id": "m8ilsr46",
26
+ "componentType": "RosterForLoop",
27
+ "mandatory": false,
28
+ "page": "2",
29
+ "lines": {
30
+ "min": { "value": "1", "type": "VTL" },
31
+ "max": { "value": "10", "type": "VTL" }
32
+ },
33
+ "header": [
34
+ { "label": { "value": "\"Prenoms ?\"", "type": "VTL|MD" } }
35
+ ],
36
+ "components": [
37
+ {
38
+ "componentType": "Input",
39
+ "maxLength": 249,
40
+ "id": "m8ilsr46-RDOP-m8im0j91",
41
+ "response": { "name": "PRENOM" }
42
+ }
43
+ ],
44
+ "positioning": "HORIZONTAL"
45
+ }
46
+ ]
47
+ },
48
+ {
49
+ "id": "m8iltdbt",
50
+ "componentType": "Loop",
51
+ "page": "3",
52
+ "maxPage": "4",
53
+ "depth": 1,
54
+ "paginatedLoop": true,
55
+ "conditionFilter": { "value": "true", "type": "VTL" },
56
+ "loopDependencies": ["PRENOM"],
57
+ "components": [
58
+ {
59
+ "id": "m8ilmimd",
60
+ "componentType": "Sequence",
61
+ "page": "3.1",
62
+ "label": {
63
+ "value": "\"II - \" || \"Sequence de \" || PRENOM ",
64
+ "type": "VTL"
65
+ },
66
+ "conditionFilter": { "value": "true", "type": "VTL" }
67
+ },
68
+ {
69
+ "id": "question-m8ilvkbt",
70
+ "componentType": "Question",
71
+ "page": "3.2",
72
+ "label": {
73
+ "value": "\"2\\. \" || \"Cette question est pour tout le monde\"",
74
+ "type": "VTL|MD"
75
+ },
76
+ "conditionFilter": { "value": "true", "type": "VTL" },
77
+ "components": [
78
+ {
79
+ "id": "m8ilvkbt",
80
+ "componentType": "Input",
81
+ "mandatory": false,
82
+ "page": "3.2",
83
+ "maxLength": 249,
84
+ "response": { "name": "CETTEQUEST" }
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "id": "question-m8iljjiu",
90
+ "componentType": "Question",
91
+ "page": "3.3",
92
+ "label": {
93
+ "value": "\"3\\. \" || \"Cette question est pour Laurent uniquement\"",
94
+ "type": "VTL|MD"
95
+ },
96
+ "conditionFilter": {
97
+ "value": "(nvl(PRENOM,\"\") = \"Laurent\")",
98
+ "type": "VTL"
99
+ },
100
+ "components": [
101
+ {
102
+ "id": "m8iljjiu",
103
+ "componentType": "Input",
104
+ "mandatory": false,
105
+ "page": "3.3",
106
+ "maxLength": 249,
107
+ "response": { "name": "ONLY_LAURENT" }
108
+ }
109
+ ]
110
+ },
111
+ {
112
+ "id": "question-m8ili0k6",
113
+ "componentType": "Question",
114
+ "page": "3.4",
115
+ "label": {
116
+ "value": "\"4\\. \" || \"Cette question est pour Laurent uniquement et s'il y a au moins 3 personnes dans le tableau\"",
117
+ "type": "VTL|MD"
118
+ },
119
+ "conditionFilter": {
120
+ "value": "(NB_PERS >= 3 and PRENOM = \"Laurent\")",
121
+ "type": "VTL"
122
+ },
123
+ "components": [
124
+ {
125
+ "id": "m8ili0k6",
126
+ "componentType": "Input",
127
+ "mandatory": false,
128
+ "page": "3.4",
129
+ "maxLength": 249,
130
+ "response": { "name": "ONLY_TROIS_LAURENT" }
131
+ }
132
+ ]
133
+ }
134
+ ],
135
+ "iterations": { "value": "count(PRENOM)", "type": "VTL" }
136
+ },
137
+ {
138
+ "id": "m8iluttj",
139
+ "componentType": "Sequence",
140
+ "page": "4",
141
+ "label": { "value": "\"III - \" || \"Fin\"", "type": "VTL" },
142
+ "conditionFilter": { "value": "true", "type": "VTL" }
143
+ }
144
+ ],
145
+ "variables": [
146
+ {
147
+ "name": "NB_PERS",
148
+ "variableType": "CALCULATED",
149
+ "expression": { "value": "count(PRENOM)", "type": "VTL" },
150
+ "bindingDependencies": ["PRENOM"],
151
+ "dimension": 0
152
+ },
153
+ {
154
+ "name": "PRENOM",
155
+ "variableType": "COLLECTED",
156
+ "values": { "COLLECTED": [] },
157
+ "iterationReference": "m8ilsr46",
158
+ "dimension": 1
159
+ },
160
+ {
161
+ "name": "CETTEQUEST",
162
+ "variableType": "COLLECTED",
163
+ "values": { "COLLECTED": [] },
164
+ "iterationReference": "m8ilsr46",
165
+ "dimension": 1
166
+ },
167
+ {
168
+ "name": "ONLY_LAURENT",
169
+ "variableType": "COLLECTED",
170
+ "values": { "COLLECTED": [] },
171
+ "iterationReference": "m8ilsr46",
172
+ "dimension": 1
173
+ },
174
+ {
175
+ "name": "ONLY_TROIS_LAURENT",
176
+ "variableType": "COLLECTED",
177
+ "values": { "COLLECTED": [] },
178
+ "iterationReference": "m8ilsr46",
179
+ "dimension": 1
180
+ },
181
+ {
182
+ "name": "FILTER_RESULT_PRENOM",
183
+ "variableType": "CALCULATED",
184
+ "expression": { "value": "true", "type": "VTL" },
185
+ "shapeFrom": ["PRENOM"],
186
+ "iterationReference": "m8ilsr46",
187
+ "dimension": 1
188
+ },
189
+ {
190
+ "name": "FILTER_RESULT_CETTEQUEST",
191
+ "variableType": "CALCULATED",
192
+ "expression": { "value": "true", "type": "VTL" },
193
+ "shapeFrom": ["PRENOM"],
194
+ "iterationReference": "m8ilsr46",
195
+ "dimension": 1
196
+ },
197
+ {
198
+ "name": "FILTER_RESULT_ONLY_LAURENT",
199
+ "variableType": "CALCULATED",
200
+ "expression": {
201
+ "value": "(nvl(PRENOM,\"\") = \"Laurent\")",
202
+ "type": "VTL"
203
+ },
204
+ "bindingDependencies": ["PRENOM"],
205
+ "shapeFrom": ["PRENOM"],
206
+ "iterationReference": "m8ilsr46",
207
+ "dimension": 1
208
+ },
209
+ {
210
+ "name": "FILTER_RESULT_ONLY_TROIS_LAURENT",
211
+ "variableType": "CALCULATED",
212
+ "expression": {
213
+ "value": "(NB_PERS >= 3 and PRENOM = \"Laurent\")",
214
+ "type": "VTL"
215
+ },
216
+ "bindingDependencies": ["NB_PERS", "PRENOM"],
217
+ "shapeFrom": ["PRENOM"],
218
+ "iterationReference": "m8ilsr46",
219
+ "dimension": 1
220
+ }
221
+ ],
222
+ "cleaning": {
223
+ "PRENOM": {
224
+ "ONLY_LAURENT": [
225
+ {
226
+ "expression": "nvl(PRENOM,\"\") = \"Laurent\"",
227
+ "shapeFrom": "PRENOM",
228
+ "isAggregatorUsed": false
229
+ }
230
+ ],
231
+ "ONLY_TROIS_LAURENT": [
232
+ {
233
+ "expression": "NB_PERS >= 3 and PRENOM = \"Laurent\"",
234
+ "shapeFrom": "PRENOM",
235
+ "isAggregatorUsed": true
236
+ }
237
+ ]
238
+ }
239
+ },
240
+ "resizing": {
241
+ "PRENOM": {
242
+ "size": "count(PRENOM)",
243
+ "variables": ["CETTEQUEST", "ONLY_LAURENT", "ONLY_TROIS_LAURENT"]
244
+ }
245
+ }
246
+ }
@@ -15,33 +15,21 @@
15
15
  {
16
16
  "variableType": "COLLECTED",
17
17
  "values": {
18
- "COLLECTED": ["John", "Jane"],
19
- "EDITED": null,
20
- "INPUTTED": null,
21
- "FORCED": null,
22
- "PREVIOUS": null
18
+ "COLLECTED": ["John", "Jane"]
23
19
  },
24
20
  "name": "PRENOM"
25
21
  },
26
22
  {
27
23
  "variableType": "COLLECTED",
28
24
  "values": {
29
- "COLLECTED": [null],
30
- "EDITED": null,
31
- "INPUTTED": null,
32
- "FORCED": null,
33
- "PREVIOUS": null
25
+ "COLLECTED": [null]
34
26
  },
35
27
  "name": "AGE"
36
28
  },
37
29
  {
38
30
  "variableType": "COLLECTED",
39
31
  "values": {
40
- "COLLECTED": [null],
41
- "EDITED": null,
42
- "INPUTTED": null,
43
- "FORCED": null,
44
- "PREVIOUS": null
32
+ "COLLECTED": [null]
45
33
  },
46
34
  "name": "HIDE_AGE"
47
35
  }
@@ -9,22 +9,14 @@
9
9
  {
10
10
  "variableType": "COLLECTED",
11
11
  "values": {
12
- "COLLECTED": null,
13
- "EDITED": null,
14
- "INPUTTED": null,
15
- "FORCED": null,
16
- "PREVIOUS": null
12
+ "COLLECTED": null
17
13
  },
18
14
  "name": "ORIGIN"
19
15
  },
20
16
  {
21
17
  "variableType": "COLLECTED",
22
18
  "values": {
23
- "COLLECTED": null,
24
- "EDITED": null,
25
- "INPUTTED": null,
26
- "FORCED": null,
27
- "PREVIOUS": null
19
+ "COLLECTED": null
28
20
  },
29
21
  "name": "CITY"
30
22
  }
@@ -4,22 +4,14 @@
4
4
  {
5
5
  "variableType": "COLLECTED",
6
6
  "values": {
7
- "COLLECTED": null,
8
- "EDITED": null,
9
- "INPUTTED": null,
10
- "FORCED": null,
11
- "PREVIOUS": null
7
+ "COLLECTED": null
12
8
  },
13
9
  "name": "COMMENT_QE"
14
10
  },
15
11
  {
16
12
  "variableType": "COLLECTED",
17
13
  "values": {
18
- "COLLECTED": [null],
19
- "EDITED": [null],
20
- "INPUTTED": [null],
21
- "FORCED": [null],
22
- "PREVIOUS": [null]
14
+ "COLLECTED": [null]
23
15
  },
24
16
  "name": "Q1"
25
17
  },
@@ -118,22 +118,14 @@
118
118
  {
119
119
  "variableType": "COLLECTED",
120
120
  "values": {
121
- "COLLECTED": ["John", "Jane"],
122
- "EDITED": null,
123
- "INPUTTED": null,
124
- "FORCED": null,
125
- "PREVIOUS": null
121
+ "COLLECTED": ["John", "Jane"]
126
122
  },
127
123
  "name": "PRENOMS"
128
124
  },
129
125
  {
130
126
  "variableType": "COLLECTED",
131
127
  "values": {
132
- "COLLECTED": [10, 12],
133
- "EDITED": null,
134
- "INPUTTED": null,
135
- "FORCED": null,
136
- "PREVIOUS": null
128
+ "COLLECTED": [10, 12]
137
129
  },
138
130
  "name": "AGES"
139
131
  }
@@ -80,33 +80,21 @@
80
80
  {
81
81
  "variableType": "COLLECTED",
82
82
  "values": {
83
- "COLLECTED": ["John", "Jane"],
84
- "EDITED": null,
85
- "INPUTTED": null,
86
- "FORCED": null,
87
- "PREVIOUS": null
83
+ "COLLECTED": ["John", "Jane"]
88
84
  },
89
85
  "name": "PRENOMS"
90
86
  },
91
87
  {
92
88
  "variableType": "COLLECTED",
93
89
  "values": {
94
- "COLLECTED": [null],
95
- "EDITED": [null],
96
- "INPUTTED": [null],
97
- "FORCED": [null],
98
- "PREVIOUS": [null]
90
+ "COLLECTED": [null]
99
91
  },
100
92
  "name": "PROGRESS"
101
93
  },
102
94
  {
103
95
  "variableType": "COLLECTED",
104
96
  "values": {
105
- "COLLECTED": [17, 22],
106
- "EDITED": [null],
107
- "INPUTTED": [null],
108
- "FORCED": [null],
109
- "PREVIOUS": [null]
97
+ "COLLECTED": [17, 22]
110
98
  },
111
99
  "name": "AGES"
112
100
  }