@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,10 +0,0 @@
1
- export declare const EVENT_FOCUS_IN = "focus-in";
2
- export declare const EVENT_FOCUS_OUT = "focus-out";
3
- export declare const EVENT_SELECTION = "selection";
4
- export declare const EVENT_CLICK = "click";
5
- export declare const EVENT_VALUE_CHANGE = "value-changed";
6
- export declare const INPUT_CATEGORY = "lunatic-input";
7
- export declare const BUTTON_CATEGORY = "lunatic-button";
8
- export declare const LINK_CATEGORY = "lunatic-link";
9
- export declare const TOOLTIP_CATEGORY = "lunatic-tooltip";
10
- export declare const CALCULATED_VAR_CATEGORY = "lunatic-calculated-var";
@@ -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
- // Category of object
8
- export const INPUT_CATEGORY = 'lunatic-input';
9
- export const BUTTON_CATEGORY = 'lunatic-button';
10
- export const LINK_CATEGORY = 'lunatic-link';
11
- export const TOOLTIP_CATEGORY = 'lunatic-tooltip';
12
- export const CALCULATED_VAR_CATEGORY = 'lunatic-calculated-var';
13
- //# sourceMappingURL=event-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../src/constants/event-types.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,qBAAqB;AACrB,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC"}
@@ -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,6 +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';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
@@ -1,21 +0,0 @@
1
- export declare const STORE_DATA_NAME = "store/entities";
2
- export declare const STORE_INFO_NAME = "store/info";
3
- export declare const STORE_INDEX_NAME = "store/entities/index";
4
- export declare const STORE_INDEX_PATH = "searching";
5
- export declare const MAX_STRING: string;
6
- export declare const SEARCH_TYPES: {
7
- prefix: string;
8
- tokens: string;
9
- };
10
- declare const IndexedDBStore: {
11
- STORE_DATA_NAME: string;
12
- STORE_INDEX_NAME: string;
13
- STORE_INDEX_PATH: string;
14
- MAX_STRING: string;
15
- SEARCH_TYPES: {
16
- prefix: string;
17
- tokens: string;
18
- };
19
- STORE_INFO_NAME: string;
20
- };
21
- export default IndexedDBStore;
@@ -1,19 +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
- const IndexedDBStore = {
11
- STORE_DATA_NAME,
12
- STORE_INDEX_NAME,
13
- STORE_INDEX_PATH,
14
- MAX_STRING,
15
- SEARCH_TYPES,
16
- STORE_INFO_NAME,
17
- };
18
- export default IndexedDBStore;
19
- //# sourceMappingURL=indexedDBStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"indexedDBStore.js","sourceRoot":"","sources":["../../src/constants/indexedDBStore.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,eAAe;CACvB,CAAC;AAEF,MAAM,cAAc,GAAG;IACtB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,YAAY;IACZ,eAAe;CACf,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1 +0,0 @@
1
- export declare const supportedPreferences: string[];
@@ -1,10 +0,0 @@
1
- import * as C from './value-types';
2
- // ORDERED ARRAY
3
- export const supportedPreferences = [
4
- C.PREVIOUS,
5
- C.COLLECTED,
6
- C.FORCED,
7
- C.EDITED,
8
- C.INPUTTED,
9
- ];
10
- //# sourceMappingURL=supported-preferences.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supported-preferences.js","sourceRoot":"","sources":["../../src/constants/supported-preferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,gBAAgB;AAChB,MAAM,CAAC,MAAM,oBAAoB,GAAG;IACnC,CAAC,CAAC,QAAQ;IACV,CAAC,CAAC,SAAS;IACX,CAAC,CAAC,MAAM;IACR,CAAC,CAAC,MAAM;IACR,CAAC,CAAC,QAAQ;CACV,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare const PREVIOUS = "PREVIOUS";
2
- export declare const COLLECTED = "COLLECTED";
3
- export declare const FORCED = "FORCED";
4
- export declare const EDITED = "EDITED";
5
- export declare const INPUTTED = "INPUTTED";
@@ -1,6 +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';
6
- //# sourceMappingURL=value-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"value-types.js","sourceRoot":"","sources":["../../src/constants/value-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const EXTERNAL: "EXTERNAL";
2
- export declare const CALCULATED: "CALCULATED";
@@ -1,5 +0,0 @@
1
- export const EXTERNAL = 'EXTERNAL';
2
- export const CALCULATED = 'CALCULATED';
3
- // Already define in value-types
4
- //export const COLLECTED = 'COLLECTED';
5
- //# sourceMappingURL=variable-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variable-types.js","sourceRoot":"","sources":["../../src/constants/variable-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAmB,CAAC;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAG,YAAqB,CAAC;AAChD,gCAAgC;AAChC,uCAAuC"}
@@ -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
- };