@inseefr/lunatic 0.2.60 → 0.3.0-experimental

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 (521) hide show
  1. package/README.md +9 -3
  2. package/lib/index.js +3577 -3152
  3. package/lib/index.js.map +1 -1
  4. package/package.json +104 -53
  5. package/src/components/breadcrumb/breadcrumb.scss +20 -20
  6. package/src/components/breadcrumb/component.js +29 -29
  7. package/src/components/breadcrumb/index.js +1 -1
  8. package/src/components/button/button.scss +24 -26
  9. package/src/components/button/component.js +53 -25
  10. package/src/components/button/index.js +1 -1
  11. package/src/components/checkbox/boolean.js +100 -28
  12. package/src/components/checkbox/checkbox.scss +64 -30
  13. package/src/components/checkbox/group.js +155 -52
  14. package/src/components/checkbox/index.js +3 -3
  15. package/src/components/checkbox/one.js +8 -129
  16. package/src/components/component-wrapper/controls/component.js +70 -0
  17. package/src/components/component-wrapper/controls/controls.scss +6 -0
  18. package/src/components/component-wrapper/controls/index.js +1 -0
  19. package/src/components/component-wrapper/controls/validators/datepicker.js +33 -0
  20. package/src/components/component-wrapper/controls/validators/index.js +16 -0
  21. package/src/components/component-wrapper/controls/validators/input-number.js +23 -0
  22. package/src/components/component-wrapper/index.js +1 -0
  23. package/src/components/component-wrapper/missing/component.js +180 -0
  24. package/src/components/component-wrapper/missing/index.js +1 -0
  25. package/src/components/component-wrapper/missing/missing.scss +32 -0
  26. package/src/components/component-wrapper/wrapper.js +23 -0
  27. package/src/components/components.js +8 -2
  28. package/src/components/datepicker/component.js +17 -100
  29. package/src/components/datepicker/datepicker.scss +1 -16
  30. package/src/components/datepicker/index.js +1 -1
  31. package/src/components/declarations/component.js +15 -2
  32. package/src/components/declarations/declarations.scss +33 -27
  33. package/src/components/declarations/index.js +1 -1
  34. package/src/components/declarations/wrappers/index.js +3 -0
  35. package/src/components/declarations/wrappers/input-declarations-wrapper.js +302 -0
  36. package/src/components/declarations/wrappers/list-declarations-wrapper.js +232 -0
  37. package/src/components/declarations/wrappers/simple-declarations-wrapper.js +54 -0
  38. package/src/components/dropdown/commons/actions.js +65 -0
  39. package/src/components/dropdown/commons/children-to-option.js +9 -0
  40. package/src/components/dropdown/commons/cleaner-callbacks.js +58 -0
  41. package/src/components/dropdown/commons/components/dropdown-container.js +29 -0
  42. package/src/components/dropdown/commons/components/dropdown-field.js +46 -0
  43. package/src/components/dropdown/commons/components/dropdown.js +183 -0
  44. package/src/components/dropdown/commons/components/label.js +28 -0
  45. package/src/components/dropdown/commons/components/panel.js +78 -0
  46. package/src/components/dropdown/commons/event-callbacks/index.js +5 -0
  47. package/src/components/dropdown/commons/event-callbacks/on-keydown-callback.js +29 -0
  48. package/src/components/dropdown/commons/event-callbacks/on-mousedown-callback.js +15 -0
  49. package/src/components/dropdown/commons/reducer.js +152 -0
  50. package/src/components/dropdown/commons/tools/index.js +17 -0
  51. package/src/components/dropdown/component.js +103 -68
  52. package/src/components/dropdown/dropdown-edit/dropdown-edit.js +191 -0
  53. package/src/components/dropdown/dropdown-edit/icone.js +33 -0
  54. package/src/components/dropdown/dropdown-edit/index.js +11 -0
  55. package/src/components/dropdown/dropdown-edit/option.js +62 -0
  56. package/src/components/dropdown/dropdown-edit/prefix-tools.js +51 -0
  57. package/src/components/dropdown/dropdown-simple/dropdown.js +171 -0
  58. package/src/components/dropdown/dropdown-simple/index.js +20 -0
  59. package/src/components/dropdown/dropdown-simple/option.js +15 -0
  60. package/src/components/dropdown/dropdown.scss +176 -14
  61. package/src/components/dropdown/index.js +1 -1
  62. package/src/components/filter-description/component.js +42 -0
  63. package/src/components/filter-description/index.js +1 -0
  64. package/src/components/icon/assets/checkbox-checked.js +16 -0
  65. package/src/components/icon/assets/checkbox-unchecked.js +16 -0
  66. package/src/components/icon/assets/index.js +4 -0
  67. package/src/components/icon/assets/radio-checked.js +16 -0
  68. package/src/components/icon/assets/radio-unchecked.js +16 -0
  69. package/src/components/icon/component.js +33 -0
  70. package/src/components/icon/icon.scss +15 -0
  71. package/src/components/icon/index.js +1 -0
  72. package/src/components/index.js +3 -4
  73. package/src/components/index.scss +151 -52
  74. package/src/components/input/index.js +2 -2
  75. package/src/components/input/input-number.js +16 -159
  76. package/src/components/input/input.js +8 -115
  77. package/src/components/input/input.scss +27 -23
  78. package/src/components/loop/component.js +170 -0
  79. package/src/components/loop/index.js +1 -0
  80. package/src/components/loop/loop.scss +13 -0
  81. package/src/components/loop/wrapper.js +15 -0
  82. package/src/components/loop-constructor/block/block.scss +10 -0
  83. package/src/components/loop-constructor/block/component.js +9 -0
  84. package/src/components/loop-constructor/block/index.js +1 -0
  85. package/src/components/loop-constructor/index.js +1 -0
  86. package/src/components/loop-constructor/roster/component.js +8 -0
  87. package/src/components/loop-constructor/roster/index.js +1 -0
  88. package/src/components/loop-constructor/wrapper/body-component.js +131 -0
  89. package/src/components/loop-constructor/wrapper/build-components.js +33 -0
  90. package/src/components/loop-constructor/wrapper/component.js +190 -0
  91. package/src/components/loop-constructor/wrapper/index.js +1 -0
  92. package/src/components/modal/component.js +36 -0
  93. package/src/components/modal/index.js +1 -0
  94. package/src/components/modal/modal.scss +33 -0
  95. package/src/components/progress-bar/component.js +28 -28
  96. package/src/components/progress-bar/index.js +1 -1
  97. package/src/components/progress-bar/progress-bar.scss +51 -51
  98. package/src/components/radio/component.js +6 -133
  99. package/src/components/radio/index.js +1 -1
  100. package/src/components/radio/radio.scss +53 -18
  101. package/src/components/sequence/component.js +30 -23
  102. package/src/components/sequence/index.js +1 -1
  103. package/src/components/sequence/sequence.scss +9 -14
  104. package/src/components/subsequence/component.js +30 -24
  105. package/src/components/subsequence/index.js +1 -1
  106. package/src/components/suggester/check-store.js +70 -0
  107. package/src/components/suggester/commons-tools/binded-keys.js +11 -0
  108. package/src/components/suggester/commons-tools/index.js +1 -0
  109. package/src/components/suggester/components/create-on-keydown-callback.js +28 -0
  110. package/src/components/suggester/components/index.js +2 -0
  111. package/src/components/suggester/components/panel/default-option-renderer.js +27 -0
  112. package/src/components/suggester/components/panel/index.js +2 -0
  113. package/src/components/suggester/components/panel/option-container.js +61 -0
  114. package/src/components/suggester/components/panel/panel-container.js +21 -0
  115. package/src/components/suggester/components/panel/panel.js +47 -0
  116. package/src/components/suggester/components/selection/default-label-renderer.js +31 -0
  117. package/src/components/suggester/components/selection/delete.js +38 -0
  118. package/src/components/suggester/components/selection/index.js +1 -0
  119. package/src/components/suggester/components/selection/label.js +35 -0
  120. package/src/components/suggester/components/selection/selection.js +50 -0
  121. package/src/components/suggester/components/suggester-content.js +42 -0
  122. package/src/components/suggester/components/suggester.js +88 -0
  123. package/src/components/suggester/components/suggester.scss +101 -0
  124. package/src/components/suggester/default-style.scss +125 -0
  125. package/src/components/suggester/find-best-label/find-best-label.js +51 -0
  126. package/src/components/suggester/find-best-label/index.js +1 -0
  127. package/src/components/suggester/idb-suggester.js +67 -0
  128. package/src/components/suggester/index.js +1 -0
  129. package/src/components/suggester/lunatic-suggester.js +139 -0
  130. package/src/components/suggester/searching/create-searching.js +49 -0
  131. package/src/components/suggester/searching/index.js +1 -0
  132. package/src/components/suggester/state-management/actions.js +38 -0
  133. package/src/components/suggester/state-management/index.js +6 -0
  134. package/src/components/suggester/state-management/intial-state.js +13 -0
  135. package/src/components/suggester/state-management/reducer/index.js +1 -0
  136. package/src/components/suggester/state-management/reducer/reduce-on-blur.js +5 -0
  137. package/src/components/suggester/state-management/reducer/reduce-on-change-search.js +8 -0
  138. package/src/components/suggester/state-management/reducer/reduce-on-click-option.js +8 -0
  139. package/src/components/suggester/state-management/reducer/reduce-on-delete-search.js +11 -0
  140. package/src/components/suggester/state-management/reducer/reduce-on-error.js +8 -0
  141. package/src/components/suggester/state-management/reducer/reduce-on-focus.js +5 -0
  142. package/src/components/suggester/state-management/reducer/reduce-on-init.js +29 -0
  143. package/src/components/suggester/state-management/reducer/reduce-on-key-down.js +73 -0
  144. package/src/components/suggester/state-management/reducer/reduce-on-unexpected-error.js +7 -0
  145. package/src/components/suggester/state-management/reducer/reduce-on-update-options.js +11 -0
  146. package/src/components/suggester/state-management/reducer/reducer.js +38 -0
  147. package/src/components/suggester/state-management/suggester-context.js +4 -0
  148. package/src/components/suggester/state-management/use-dispatch.js +11 -0
  149. package/src/components/suggester/suggester-wrapper.js +121 -0
  150. package/src/components/suggester-loader-widget/index.js +1 -0
  151. package/src/components/suggester-loader-widget/loader-row.js +102 -0
  152. package/src/components/suggester-loader-widget/loader.js +67 -0
  153. package/src/components/suggester-loader-widget/progress.js +25 -0
  154. package/src/components/suggester-loader-widget/tools/action-tool.js +20 -0
  155. package/src/components/suggester-loader-widget/tools/index.js +2 -0
  156. package/src/components/suggester-loader-widget/tools/tools.js +7 -0
  157. package/src/components/suggester-loader-widget/widget-container.js +35 -0
  158. package/src/components/suggester-loader-widget/widget.js +123 -0
  159. package/src/components/suggester-loader-widget/widget.scss +176 -0
  160. package/src/components/table/index.js +1 -1
  161. package/src/components/table/table.js +53 -15
  162. package/src/components/table/table.scss +22 -19
  163. package/src/components/textarea/component.js +8 -114
  164. package/src/components/textarea/index.js +1 -1
  165. package/src/components/textarea/textarea.scss +5 -13
  166. package/src/components/tooltip/img/index.js +4 -4
  167. package/src/components/tooltip/index.js +1 -1
  168. package/src/components/tooltip/response.js +52 -42
  169. package/src/components/tooltip/tooltip.scss +26 -31
  170. package/src/constants/component-types.js +1 -0
  171. package/src/{utils/constants.js → constants/declarations.js} +14 -14
  172. package/src/constants/event-types.js +13 -0
  173. package/src/constants/index.js +5 -0
  174. package/src/constants/supported-preferences.js +10 -0
  175. package/src/constants/value-types.js +5 -0
  176. package/src/constants/variable-types.js +4 -0
  177. package/src/stories/breadcrumb/README.md +14 -14
  178. package/src/stories/breadcrumb/breadcrumb.stories.js +6 -20
  179. package/src/stories/button/README.md +14 -14
  180. package/src/stories/button/button.stories.js +27 -63
  181. package/src/stories/checkbox-boolean/README.md +27 -25
  182. package/src/stories/checkbox-boolean/checkbox-boolean.stories.js +54 -49
  183. package/src/stories/checkbox-boolean/data-forced.json +48 -0
  184. package/src/stories/checkbox-boolean/data.json +78 -0
  185. package/src/stories/checkbox-group/README.md +29 -28
  186. package/src/stories/checkbox-group/checkbox-group.stories.js +60 -122
  187. package/src/stories/checkbox-group/data-forced.json +89 -0
  188. package/src/stories/checkbox-group/data-vtl.json +102 -0
  189. package/src/stories/checkbox-group/data.json +89 -0
  190. package/src/stories/checkbox-one/README.md +31 -30
  191. package/src/stories/checkbox-one/checkbox-one.stories.js +57 -112
  192. package/src/stories/checkbox-one/data-forced.json +33 -0
  193. package/src/stories/checkbox-one/data-vtl.json +48 -0
  194. package/src/stories/checkbox-one/data.json +33 -0
  195. package/src/stories/datepicker/README.md +31 -27
  196. package/src/stories/datepicker/data-forced.json +28 -0
  197. package/src/stories/datepicker/data.json +45 -0
  198. package/src/stories/datepicker/datepicker.stories.js +60 -82
  199. package/src/stories/declarations/README.md +19 -17
  200. package/src/stories/declarations/declarations.stories.js +70 -15
  201. package/src/stories/dropdown/README.md +33 -18
  202. package/src/stories/dropdown/data-forced.json +81 -0
  203. package/src/stories/dropdown/data-naf.json +6963 -0
  204. package/src/stories/dropdown/data-props.json +111 -0
  205. package/src/stories/dropdown/data.json +98 -0
  206. package/src/stories/dropdown/dropdown.stories.js +64 -45
  207. package/src/stories/filter-description/README.md +15 -0
  208. package/src/stories/filter-description/filter-description.stories.js +53 -0
  209. package/src/stories/icons/icons.stories.js +16 -0
  210. package/src/stories/icons/lunatic-icon.scss +10 -0
  211. package/src/stories/input/README.md +33 -28
  212. package/src/stories/input/data-forced.json +41 -0
  213. package/src/stories/input/data.json +41 -0
  214. package/src/stories/input/input.stories.js +72 -88
  215. package/src/stories/input-number/README.md +37 -31
  216. package/src/stories/input-number/data-forced.json +27 -0
  217. package/src/stories/input-number/data.json +42 -0
  218. package/src/stories/input-number/input-number.stories.js +81 -95
  219. package/src/stories/loop/README.md +25 -0
  220. package/src/stories/loop/loop.stories.js +88 -0
  221. package/src/stories/loop/with-loop/data-loop-deeper.json +298 -0
  222. package/src/stories/loop/with-loop/data-loop.json +336 -0
  223. package/src/stories/loop/with-loop/index.js +2 -0
  224. package/src/stories/loop/with-roster/data-forced.json +213 -0
  225. package/src/stories/loop/with-roster/data-loop-deeper.json +298 -0
  226. package/src/stories/loop/with-roster/data-loop.json +288 -0
  227. package/src/stories/loop/with-roster/index.js +3 -0
  228. package/src/stories/loop-constructor/README.md +27 -0
  229. package/src/stories/loop-constructor/data-input-forced.json +64 -0
  230. package/src/stories/loop-constructor/data-input.json +100 -0
  231. package/src/stories/loop-constructor/data-loop-forced.json +66 -0
  232. package/src/stories/loop-constructor/data-loop-static-forced.json +66 -0
  233. package/src/stories/loop-constructor/data-loop-static.json +81 -0
  234. package/src/stories/loop-constructor/data-loop.json +81 -0
  235. package/src/stories/loop-constructor/data-roster-forced.json +68 -0
  236. package/src/stories/loop-constructor/data-roster.json +83 -0
  237. package/src/stories/loop-constructor/loop-constructor.stories.js +180 -0
  238. package/src/stories/pagination/deeper-loop.json +327 -0
  239. package/src/stories/pagination/pagination.stories.js +60 -0
  240. package/src/stories/pagination/simple-loop.json +277 -0
  241. package/src/stories/pagination/simpsons-question.json +4952 -0
  242. package/src/stories/pagination/simpsons-sequence.json +4362 -0
  243. package/src/stories/progress-bar/README.md +13 -13
  244. package/src/stories/progress-bar/progress-bar.stories.js +3 -3
  245. package/src/stories/questionnaire/arithmetic.json +247 -0
  246. package/src/stories/questionnaire/calc-var.json +187 -0
  247. package/src/stories/questionnaire/data-logement.json +2691 -0
  248. package/src/stories/questionnaire/logement-queen.json +22706 -0
  249. package/src/stories/questionnaire/logement-s2.json +44537 -0
  250. package/src/stories/questionnaire/logement-sequence.json +26742 -0
  251. package/src/stories/questionnaire/logement.json +21073 -0
  252. package/src/stories/questionnaire/questionnaire.stories.js +172 -0
  253. package/src/stories/questionnaire/simpsons.json +4816 -0
  254. package/src/stories/radio/README.md +31 -30
  255. package/src/stories/radio/data-forced.json +32 -0
  256. package/src/stories/radio/data-vtl.json +47 -0
  257. package/src/stories/radio/data.json +32 -0
  258. package/src/stories/radio/radio.stories.js +64 -110
  259. package/src/stories/sequence/README.md +18 -16
  260. package/src/stories/sequence/sequence.stories.js +14 -28
  261. package/src/stories/subsequence/README.md +18 -16
  262. package/src/stories/subsequence/subsequence.stories.js +14 -28
  263. package/src/stories/suggester/README.md +46 -0
  264. package/src/stories/suggester/bailleurs-sociaux/fetch-bailleurs.js +15 -0
  265. package/src/stories/suggester/bailleurs-sociaux/index.js +2 -0
  266. package/src/stories/suggester/bailleurs-sociaux/option-bailleur-renderer.js +58 -0
  267. package/src/stories/suggester/bailleurs-sociaux/preloader.svg +52 -0
  268. package/src/stories/suggester/bailleurs-sociaux/theme.scss +22 -0
  269. package/src/stories/suggester/cog-communes/fetch-cog.js +15 -0
  270. package/src/stories/suggester/cog-communes/index.js +2 -0
  271. package/src/stories/suggester/cog-communes/option-cog-renderer.js +15 -0
  272. package/src/stories/suggester/cog-communes/theme.scss +12 -0
  273. package/src/stories/suggester/data-auto.json +232 -0
  274. package/src/stories/suggester/data-vtl.json +82 -0
  275. package/src/stories/suggester/data.json +136 -0
  276. package/src/stories/suggester/naf-rev2/fetch-naf.js +57 -0
  277. package/src/stories/suggester/naf-rev2/index.js +2 -0
  278. package/src/stories/suggester/naf-rev2/option-naf-renderer.js +17 -0
  279. package/src/stories/suggester/naf-rev2/theme.scss +36 -0
  280. package/src/stories/suggester/suggester-workers.stories.js +179 -0
  281. package/src/stories/suggester/suggester.stories.js +133 -0
  282. package/src/stories/table/README.md +29 -23
  283. package/src/stories/table/data-default.json +19 -0
  284. package/src/stories/table/data-one-axis-one-measure.json +139 -0
  285. package/src/stories/table/data-one-axis-two-measures.json +208 -0
  286. package/src/stories/table/data-one-hierarchical-axis.json +219 -0
  287. package/src/stories/table/data-roster.json +486 -0
  288. package/src/stories/table/data-two-axis-one-measure.json +507 -0
  289. package/src/stories/table/table.stories.js +82 -1021
  290. package/src/stories/textarea/README.md +33 -29
  291. package/src/stories/textarea/data-forced.json +28 -0
  292. package/src/stories/textarea/data.json +43 -0
  293. package/src/stories/textarea/textarea.stories.js +68 -85
  294. package/src/stories/tooltip-response/README.md +14 -14
  295. package/src/stories/tooltip-response/md-link.json +31 -0
  296. package/src/stories/tooltip-response/md-tooltip.json +31 -0
  297. package/src/stories/tooltip-response/tooltip.stories.js +83 -43
  298. package/src/stories/utils/custom-lunatic.scss +23 -0
  299. package/src/stories/utils/img/arrow.png +0 -0
  300. package/src/stories/utils/img/check_box.svg +1 -0
  301. package/src/stories/utils/img/check_box_outline.svg +1 -0
  302. package/src/stories/utils/img/lunatic-logo.png +0 -0
  303. package/src/stories/utils/img/menu-down.svg +1 -0
  304. package/src/stories/utils/img/menu-up.svg +1 -0
  305. package/src/stories/utils/img/radio_button_checked.svg +1 -0
  306. package/src/stories/utils/img/radio_button_unchecked.svg +1 -0
  307. package/src/stories/utils/options.js +25 -0
  308. package/src/stories/utils/orchestrator.js +110 -0
  309. package/src/tests/components/breadcrumb.spec.js +13 -13
  310. package/src/tests/components/button.spec.js +11 -11
  311. package/src/tests/components/checkbox-boolean.spec.js +45 -22
  312. package/src/tests/components/checkbox-group.spec.js +53 -17
  313. package/src/tests/components/checkbox-one.spec.js +32 -17
  314. package/src/tests/components/datepicker.spec.js +22 -42
  315. package/src/tests/components/declarations-wrappers/input-declarations-wrapper.spec.js +67 -0
  316. package/src/tests/components/declarations-wrappers/list-declarations-wrapper.spec.js +52 -0
  317. package/src/tests/components/declarations-wrappers/simple-declarations-wrapper.spec.js +21 -0
  318. package/src/tests/components/declarations.spec.js +46 -46
  319. package/src/tests/components/input-number.spec.js +131 -28
  320. package/src/tests/components/input.spec.js +18 -38
  321. package/src/tests/components/loops/loop-static.json +66 -0
  322. package/src/tests/components/loops/loop.json +258 -0
  323. package/src/tests/components/loops/loop.spec.js +30 -0
  324. package/src/tests/components/loops/roster-for-loop.spec.js +18 -0
  325. package/src/tests/components/loops/roster-loop.json +71 -0
  326. package/src/tests/components/missing-wrapper.spec.js +32 -0
  327. package/src/tests/components/progress-bar.spec.js +15 -15
  328. package/src/tests/components/radio.spec.js +27 -21
  329. package/src/tests/components/sequence.spec.js +9 -9
  330. package/src/tests/components/subsequence.spec.js +9 -9
  331. package/src/tests/components/table.spec.js +11 -11
  332. package/src/tests/components/textarea.spec.js +18 -38
  333. package/src/tests/components/tooltip.spec.js +25 -0
  334. package/src/tests/setup/setupTests.js +4 -4
  335. package/src/tests/utils/lib/alphabet.spec.js +36 -0
  336. package/src/tests/utils/lib/array.spec.js +22 -0
  337. package/src/tests/utils/lib/checkbox/group.spec.js +72 -0
  338. package/src/tests/utils/lib/decorator/title-decorator.spec.js +12 -12
  339. package/src/tests/utils/lib/input-number.spec.js +18 -0
  340. package/src/tests/utils/lib/items-positioning.spec.js +17 -17
  341. package/src/tests/utils/lib/label-position.spec.js +22 -19
  342. package/src/tests/utils/lib/loops/bindings.spec.js +75 -0
  343. package/src/tests/utils/lib/loops/shared.spec.js +82 -0
  344. package/src/tests/utils/lib/missing/missing.spec.js +74 -0
  345. package/src/tests/utils/lib/missing/mock.js +137 -0
  346. package/src/tests/utils/lib/pagination/shared.spec.js +42 -0
  347. package/src/tests/utils/lib/responses.spec.js +64 -68
  348. package/src/tests/utils/lib/style.spec.js +26 -26
  349. package/src/tests/utils/lib/table/roster.spec.js +6 -6
  350. package/src/tests/utils/lib/tooltip/build-response.spec.js +95 -50
  351. package/src/tests/utils/lib/tooltip/content.spec.js +109 -0
  352. package/src/tests/utils/to-expose/handler/handler.spec.js +94 -0
  353. package/src/tests/utils/to-expose/handler/questionnaire.json +158 -0
  354. package/src/tests/utils/to-expose/handler/results/index.js +6 -0
  355. package/src/tests/utils/to-expose/handler/results/res-double.json +158 -0
  356. package/src/tests/utils/to-expose/handler/results/res-input-collected.json +158 -0
  357. package/src/tests/utils/to-expose/handler/results/res-input-edited.json +158 -0
  358. package/src/tests/utils/to-expose/handler/results/res-loop.json +158 -0
  359. package/src/tests/utils/to-expose/handler/results/res-matrix.json +158 -0
  360. package/src/tests/utils/to-expose/handler/results/res-responses.json +158 -0
  361. package/src/tests/utils/to-expose/hooks/use-lunatic.spec.js +46 -0
  362. package/src/tests/utils/to-expose/init-questionnaire/data.json +12 -0
  363. package/src/tests/utils/to-expose/init-questionnaire/init-questionnaire.spec.js +19 -0
  364. package/src/tests/utils/to-expose/init-questionnaire/questionnaire.json +148 -0
  365. package/src/tests/utils/to-expose/init-questionnaire/result.json +181 -0
  366. package/src/tests/utils/to-expose/interpret/interpret.spec.js +48 -0
  367. package/src/tests/utils/to-expose/state/questionnaire.json +61 -0
  368. package/src/tests/utils/to-expose/state/results.js +78 -0
  369. package/src/tests/utils/to-expose/state/state.spec.js +59 -0
  370. package/src/utils/components/dragger/dragger.js +64 -0
  371. package/src/utils/components/dragger/dragger.scss +8 -0
  372. package/src/utils/components/dragger/index.js +1 -0
  373. package/src/utils/components/fab/fab.js +50 -0
  374. package/src/utils/components/fab/fab.scss +32 -0
  375. package/src/utils/components/fab/index.js +1 -0
  376. package/src/utils/components/field-wrapper.js +23 -0
  377. package/src/utils/components/is-network/index.js +1 -0
  378. package/src/utils/components/is-network/is-network.js +39 -0
  379. package/src/utils/components/is-network/use-online-status.js +51 -0
  380. package/src/utils/components/label-wrapper.js +45 -0
  381. package/src/utils/icons/closed.icon.js +24 -0
  382. package/src/utils/icons/cross.icon.js +24 -0
  383. package/src/utils/icons/load.icon.js +24 -0
  384. package/src/utils/icons/lunatic-icon.js +9 -0
  385. package/src/utils/icons/lunatic-icon.scss +4 -0
  386. package/src/utils/icons/network.icon.js +24 -0
  387. package/src/utils/icons/on-drag.icon.js +24 -0
  388. package/src/utils/icons/opened.icon.js +24 -0
  389. package/src/utils/idb-tools/clear-store.js +16 -0
  390. package/src/utils/idb-tools/create-db-opener.js +43 -0
  391. package/src/utils/idb-tools/create-open-db.js +25 -0
  392. package/src/utils/idb-tools/get-entity.js +15 -0
  393. package/src/utils/idb-tools/get-idb.js +12 -0
  394. package/src/utils/idb-tools/idb-bulk-insert.js +96 -0
  395. package/src/utils/idb-tools/index.js +10 -0
  396. package/src/utils/idb-tools/insert-entity.js +15 -0
  397. package/src/utils/idb-tools/open-db.js +13 -0
  398. package/src/utils/idb-tools/open-or-create-db.js +34 -0
  399. package/src/utils/lib/alphabet.js +1 -1
  400. package/src/utils/lib/array.js +7 -0
  401. package/src/utils/lib/checkbox/group.js +21 -0
  402. package/src/utils/lib/checkbox/index.js +1 -0
  403. package/src/utils/lib/controls/index.js +1 -0
  404. package/src/utils/lib/controls/utils.js +146 -0
  405. package/src/utils/lib/decorator/index.js +1 -1
  406. package/src/utils/lib/decorator/title-decorator.js +10 -12
  407. package/src/utils/lib/env.js +2 -0
  408. package/src/utils/lib/event.js +15 -0
  409. package/src/utils/lib/function.js +1 -0
  410. package/src/utils/lib/index.js +14 -3
  411. package/src/utils/lib/input-number.js +6 -0
  412. package/src/utils/lib/label-position.js +12 -12
  413. package/src/utils/lib/loops/bindings.js +66 -0
  414. package/src/utils/lib/loops/build-components.js +33 -0
  415. package/src/utils/lib/loops/index.js +3 -0
  416. package/src/utils/lib/loops/shared.js +55 -0
  417. package/src/utils/lib/memo-check.js +24 -0
  418. package/src/utils/lib/missing.js +52 -0
  419. package/src/utils/lib/pagination/flow.js +2 -0
  420. package/src/utils/lib/pagination/index.js +2 -0
  421. package/src/utils/lib/pagination/navigation/index.js +1 -0
  422. package/src/utils/lib/pagination/navigation/shared.js +256 -0
  423. package/src/utils/lib/prop-types/declarations.js +22 -22
  424. package/src/utils/lib/prop-types/index.js +5 -5
  425. package/src/utils/lib/prop-types/lines.js +2 -2
  426. package/src/utils/lib/prop-types/options.js +8 -8
  427. package/src/utils/lib/prop-types/response.js +6 -15
  428. package/src/utils/lib/prop-types/value-type.js +9 -9
  429. package/src/utils/lib/responses.js +10 -8
  430. package/src/utils/lib/table/index.js +1 -1
  431. package/src/utils/lib/table/roster.js +23 -21
  432. package/src/utils/lib/tooltip/build-response.js +41 -11
  433. package/src/utils/lib/tooltip/content.js +55 -35
  434. package/src/utils/lib/tooltip/index.js +6 -2
  435. package/src/utils/store-tools/auto-load.js +74 -0
  436. package/src/utils/store-tools/clear-store-data.js +8 -0
  437. package/src/utils/store-tools/clear-store-info.js +8 -0
  438. package/src/utils/store-tools/constantes.js +20 -0
  439. package/src/utils/store-tools/create/create.js +19 -0
  440. package/src/utils/store-tools/create/index.js +1 -0
  441. package/src/utils/store-tools/create/update-store-info.js +26 -0
  442. package/src/utils/store-tools/get-store-count.js +22 -0
  443. package/src/utils/store-tools/index.js +5 -0
  444. package/src/utils/store-tools/open-or-create-store.js +47 -0
  445. package/src/utils/store-tools/use-store-index.js +24 -0
  446. package/src/utils/suggester-workers/append-to-index/append.js +25 -0
  447. package/src/utils/suggester-workers/append-to-index/append.worker.js +16 -0
  448. package/src/utils/suggester-workers/append-to-index/create-append-task.js +45 -0
  449. package/src/utils/suggester-workers/append-to-index/index.js +2 -0
  450. package/src/utils/suggester-workers/append-to-index/prepare-entities.js +61 -0
  451. package/src/utils/suggester-workers/append-to-index/store-messages.js +21 -0
  452. package/src/utils/suggester-workers/commons-tokenizer/create-entity-tokenizer.js +54 -0
  453. package/src/utils/suggester-workers/commons-tokenizer/create-fields-tokenizer.js +52 -0
  454. package/src/utils/suggester-workers/commons-tokenizer/create-filter-stop-words.js +17 -0
  455. package/src/utils/suggester-workers/commons-tokenizer/filters/compose-filters.js +10 -0
  456. package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.js +17 -0
  457. package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.spec.js +14 -0
  458. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-accents-to-lower.js +12 -0
  459. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-accents-to-lower.spec.js +12 -0
  460. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-double.js +12 -0
  461. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-double.spec.js +20 -0
  462. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-length.js +7 -0
  463. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-length.spec.js +18 -0
  464. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-stemmer.js +13 -0
  465. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-stemmer.spec.js +12 -0
  466. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.js +10 -0
  467. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.spec.js +12 -0
  468. package/src/utils/suggester-workers/commons-tokenizer/filters/index.js +2 -0
  469. package/src/utils/suggester-workers/commons-tokenizer/filters/stop-words.js +118 -0
  470. package/src/utils/suggester-workers/commons-tokenizer/get-regexp-from-pattern.js +8 -0
  471. package/src/utils/suggester-workers/commons-tokenizer/get-stemmer.js +18 -0
  472. package/src/utils/suggester-workers/commons-tokenizer/index.js +8 -0
  473. package/src/utils/suggester-workers/commons-tokenizer/prepare-string-indexation.js +13 -0
  474. package/src/utils/suggester-workers/commons-tokenizer/soft-tokenizer.js +7 -0
  475. package/src/utils/suggester-workers/create-worker.js +56 -0
  476. package/src/utils/suggester-workers/find-best-label/find-best-label.js +39 -0
  477. package/src/utils/suggester-workers/find-best-label/find-best-label.worker.js +40 -0
  478. package/src/utils/suggester-workers/find-best-label/index.js +0 -0
  479. package/src/utils/suggester-workers/find-best-label/tokenize.js +30 -0
  480. package/src/utils/suggester-workers/find-best-label/tokenize.spec.js +19 -0
  481. package/src/utils/suggester-workers/searching/compute-score.js +33 -0
  482. package/src/utils/suggester-workers/searching/get-db.js +18 -0
  483. package/src/utils/suggester-workers/searching/index.js +1 -0
  484. package/src/utils/suggester-workers/searching/order/create-alphanumeric-orderer.js +20 -0
  485. package/src/utils/suggester-workers/searching/order/index.js +19 -0
  486. package/src/utils/suggester-workers/searching/query-parser/index.js +2 -0
  487. package/src/utils/suggester-workers/searching/query-parser/query-parser-soft.js +7 -0
  488. package/src/utils/suggester-workers/searching/query-parser/query-parser-soft.spec.js +24 -0
  489. package/src/utils/suggester-workers/searching/query-parser/query-parser-tokenized.js +28 -0
  490. package/src/utils/suggester-workers/searching/resolve-query-parser.js +27 -0
  491. package/src/utils/suggester-workers/searching/search-in-index.js +17 -0
  492. package/src/utils/suggester-workers/searching/searching.js +70 -0
  493. package/src/utils/suggester-workers/searching/searching.worker.js +11 -0
  494. package/src/utils/to-expose/calculated-variables.js +113 -0
  495. package/src/utils/to-expose/handler.js +102 -85
  496. package/src/utils/to-expose/hooks/filter-components.js +106 -0
  497. package/src/utils/to-expose/hooks/index.js +1 -0
  498. package/src/utils/to-expose/hooks/lunatic.js +235 -0
  499. package/src/utils/to-expose/hooks/use-document-add-event-listener.js +63 -0
  500. package/src/utils/to-expose/index.js +11 -3
  501. package/src/utils/to-expose/init-questionnaire.js +156 -37
  502. package/src/utils/to-expose/interpret/index.js +1 -0
  503. package/src/utils/to-expose/interpret/main.js +16 -0
  504. package/src/utils/to-expose/interpret/md.js +65 -0
  505. package/src/utils/to-expose/interpret/vtl.js +18 -0
  506. package/src/utils/to-expose/state.js +44 -61
  507. package/src/components/dropdown/shared/option.component.js +0 -77
  508. package/src/components/dropdown/shared/select-base.component.js +0 -148
  509. package/src/components/dropdown/shared/select-container.component.js +0 -59
  510. package/src/components/dropdown/shared/select-panel.component.js +0 -202
  511. package/src/components/dropdown/simple/index.js +0 -10
  512. package/src/components/dropdown/simple/prop-types.js +0 -14
  513. package/src/components/dropdown/simple/simple-select-list.component.js +0 -31
  514. package/src/components/dropdown/simple/simple-select-nested.component.js +0 -70
  515. package/src/components/dropdown/simple/simple-select.scss +0 -84
  516. package/src/components/dropdown/writable/index.js +0 -1
  517. package/src/components/dropdown/writable/writable-select.component.js +0 -98
  518. package/src/components/dropdown/writable/writable-select.scss +0 -113
  519. package/src/components/subsequence/subsequence.scss +0 -15
  520. package/src/tests/components/dropdown.spec.js +0 -20
  521. package/src/tests/utils/to-expose/state.spec.js +0 -251
@@ -1,1021 +1,82 @@
1
- import React from 'react';
2
- import { storiesOf } from '@storybook/react';
3
- import { withReadme } from 'storybook-readme';
4
- import { Table } from 'components';
5
- import readme from './README.md';
6
- import { titleDecorator } from 'utils/lib';
7
- import { boolean } from '@storybook/addon-knobs/react';
8
-
9
- const defaultProps = {
10
- handleChange: console.log,
11
- preferences: ['COLLECTED', 'FORCED', 'EDITED'],
12
- };
13
-
14
- const stories = storiesOf('Table', module)
15
- .addDecorator(withReadme(readme))
16
- .addDecorator(Component => {
17
- const WrappedComponent = titleDecorator(Component);
18
- return <WrappedComponent title="<Table />" />;
19
- });
20
-
21
- stories.addWithJSX('Default', () => (
22
- <Table
23
- id="default"
24
- label="Label of my default table"
25
- handleChange={console.log}
26
- cells={[
27
- [
28
- { label: '' },
29
- { label: 'Header 1', headerCell: true },
30
- { label: 'Header 2', headerCell: true },
31
- ],
32
- [{ label: 'Line 1' }, { label: 'Cell 11' }, { label: 'Cell 12' }],
33
- [{ label: 'Line 2' }, { label: 'Cell 21' }, { label: 'Cell 22' }],
34
- [{ label: 'Line 3' }, { label: 'Cell 31' }, { label: 'Cell 32' }],
35
- ]}
36
- />
37
- ));
38
-
39
- stories.addWithJSX('OneAxisOneMeasure', () => (
40
- <Table
41
- {...defaultProps}
42
- id="one-axis"
43
- label="Have you ever visited these countries?"
44
- cells={[
45
- [
46
- { value: '1', label: 'Belgium' },
47
- {
48
- id: 'a',
49
- componentType: 'Radio',
50
- options: [{ value: '1', label: 'Yes' }, { value: '0', label: 'No' }],
51
- response: {
52
- name: 'RADIO_A',
53
- valueState: [
54
- { valueType: 'COLLECTED', value: '1' },
55
- { valueType: 'FORCED', value: '0' },
56
- ],
57
- },
58
- },
59
- ],
60
- [
61
- { value: '2', label: 'France' },
62
- {
63
- id: 'b',
64
- componentType: 'Radio',
65
- options: [{ value: '1', label: 'Yes' }, { value: '0', label: 'No' }],
66
- response: {
67
- name: 'RADIO_B',
68
- valueState: [
69
- { valueType: 'COLLECTED', value: '0' },
70
- { valueType: 'FORCED', value: '1' },
71
- ],
72
- },
73
- },
74
- ],
75
- [
76
- { value: '3', label: 'Italy' },
77
- {
78
- id: 'c',
79
- componentType: 'Radio',
80
- options: [{ value: '1', label: 'Yes' }, { value: '0', label: 'No' }],
81
- response: {
82
- name: 'RADIO_C',
83
- valueState: [
84
- { valueType: 'COLLECTED', value: '1' },
85
- { valueType: 'FORCED', value: '0' },
86
- { valueType: 'EDITED', value: '1' },
87
- ],
88
- },
89
- },
90
- ],
91
- [
92
- { value: '4', label: 'Spain' },
93
- {
94
- id: 'd',
95
- componentType: 'Radio',
96
- options: [{ value: '1', label: 'Yes' }, { value: '0', label: 'No' }],
97
- response: {
98
- name: 'RADIO_D',
99
- valueState: [
100
- { valueType: 'COLLECTED', value: '1' },
101
- { valueType: 'FORCED', value: null },
102
- ],
103
- },
104
- },
105
- ],
106
- ]}
107
- tooltip={boolean('Tooltip', false)}
108
- />
109
- ));
110
-
111
- stories.addWithJSX('OneAxisTwoMeasures', () => (
112
- <Table
113
- {...defaultProps}
114
- id="one-axis-two-measures"
115
- label="Birth informations"
116
- cells={[
117
- [
118
- { label: '' },
119
- { label: 'Date', headerCell: true },
120
- { label: 'Place', headerCell: true },
121
- ],
122
- [
123
- { value: '1', label: 'Marco' },
124
- {
125
- id: 'a-datepicker',
126
- componentType: 'Datepicker',
127
- response: {
128
- name: 'DATEPICKER_A',
129
- valueState: [
130
- { valueType: 'COLLECTED', value: '1998-07-12' },
131
- { valueType: 'FORCED', value: null },
132
- ],
133
- },
134
- },
135
- {
136
- id: 'a-dropdown',
137
- componentType: 'Dropdown',
138
- options: [
139
- { value: 'belgium', label: 'Belgium' },
140
- { value: 'france', label: 'France' },
141
- { value: 'italy', label: 'Italy' },
142
- { value: 'netherland', label: 'Netherland' },
143
- { value: 'spain', label: 'Spain' },
144
- { value: 'sweden', label: 'Sweden' },
145
- ],
146
- response: {
147
- name: 'DROPDOWN_A',
148
- valueState: [
149
- { valueType: 'COLLECTED', value: 'italy' },
150
- { valueType: 'FORCED', value: 'france' },
151
- { valueType: 'EDITED', value: 'italy' },
152
- ],
153
- },
154
- },
155
- ],
156
- [
157
- { value: '2', label: 'Kyllian' },
158
- {
159
- id: 'b-datepicker',
160
- componentType: 'Datepicker',
161
- response: {
162
- name: 'DATEPICKER_B',
163
- valueState: [
164
- { valueType: 'COLLECTED', value: '1998-07-12' },
165
- { valueType: 'FORCED', value: '2018-07-15' },
166
- ],
167
- },
168
- },
169
- {
170
- id: 'b-dropdown',
171
- componentType: 'Dropdown',
172
- options: [
173
- { value: 'belgium', label: 'Belgium' },
174
- { value: 'france', label: 'France' },
175
- { value: 'italy', label: 'Italy' },
176
- { value: 'netherland', label: 'Netherland' },
177
- { value: 'spain', label: 'Spain' },
178
- { value: 'sweden', label: 'Sweden' },
179
- ],
180
- response: {
181
- name: 'DROPDOWN_B',
182
- valueState: [
183
- { valueType: 'COLLECTED', value: 'belgium' },
184
- { valueType: 'FORCED', value: 'france' },
185
- ],
186
- },
187
- },
188
- ],
189
- ]}
190
- tooltip={boolean('Tooltip', false)}
191
- />
192
- ));
193
-
194
- stories.addWithJSX('OneHierarchicalAxis', () => (
195
- <Table
196
- {...defaultProps}
197
- id="one-hierarchical-axis"
198
- label="Hierarchical table"
199
- cells={[
200
- [{ label: '', colspan: '2' }, { label: 'Percentage', headerCell: true }],
201
- [
202
- { value: 'A', label: 'A', rowspan: '2' },
203
- { value: 'A1', label: 'A1' },
204
- {
205
- id: 'a1',
206
- componentType: 'InputNumber',
207
- min: 0,
208
- max: 100,
209
- response: {
210
- name: 'INPUT_NUMBER_1',
211
- valueState: [
212
- { valueType: 'COLLECTED', value: '1' },
213
- { valueType: 'FORCED', value: '2' },
214
- { valueType: 'EDITED', value: '3' },
215
- ],
216
- },
217
- },
218
- ],
219
- [
220
- { value: 'A2', label: 'A2' },
221
- {
222
- id: 'a2',
223
- componentType: 'InputNumber',
224
- min: 0,
225
- max: 100,
226
- response: {
227
- name: 'INPUT_NUMBER_2',
228
- valueState: [
229
- { valueType: 'COLLECTED', value: '1' },
230
- { valueType: 'FORCED', value: null },
231
- { valueType: 'EDITED', value: null },
232
- ],
233
- },
234
- },
235
- ],
236
- [
237
- { value: 'B', label: 'B', rowspan: '3' },
238
- { value: 'B1', label: 'B1' },
239
- {
240
- id: 'b1',
241
- componentType: 'InputNumber',
242
- min: 0,
243
- max: 100,
244
- response: {
245
- name: 'INPUT_NUMBER_3',
246
- valueState: [
247
- { valueType: 'COLLECTED', value: null },
248
- { valueType: 'FORCED', value: null },
249
- { valueType: 'EDITED', value: null },
250
- ],
251
- },
252
- },
253
- ],
254
- [
255
- { value: 'B2', label: 'B2' },
256
- {
257
- id: 'b2',
258
- componentType: 'InputNumber',
259
- min: 0,
260
- max: 100,
261
- response: {
262
- name: 'INPUT_NUMBER_4',
263
- valueState: [
264
- { valueType: 'COLLECTED', value: '1' },
265
- { valueType: 'FORCED', value: null },
266
- { valueType: 'EDITED', value: '3' },
267
- ],
268
- },
269
- },
270
- ],
271
- [
272
- { value: 'B3', label: 'B3' },
273
- {
274
- id: 'B3',
275
- componentType: 'InputNumber',
276
- min: 0,
277
- max: 100,
278
- response: {
279
- name: 'INPUT_NUMBER_5',
280
- valueState: [
281
- { valueType: 'COLLECTED', value: '1' },
282
- { valueType: 'FORCED', value: '2' },
283
- { valueType: 'EDITED', value: null },
284
- ],
285
- },
286
- },
287
- ],
288
- [
289
- { value: 'other', label: 'Other', colspan: '2' },
290
- {
291
- id: 'other',
292
- componentType: 'InputNumber',
293
- min: 0,
294
- max: 100,
295
- response: {
296
- name: 'INPUT_NUMBER_6',
297
- valueState: [
298
- { valueType: 'COLLECTED', value: null },
299
- { valueType: 'FORCED', value: null },
300
- { valueType: 'EDITED', value: null },
301
- ],
302
- },
303
- },
304
- ],
305
- ]}
306
- tooltip={boolean('Tooltip', false)}
307
- />
308
- ));
309
-
310
- stories.addWithJSX('TwoAxisOneMeasure', () => (
311
- <Table
312
- {...defaultProps}
313
- id="two-axis"
314
- label="What dimensions do you value and in which countries"
315
- cells={[
316
- [
317
- { label: '' },
318
- { value: '1', label: 'Population', headerCell: true },
319
- { value: '2', label: 'Monuments', headerCell: true },
320
- { value: '3', label: 'Climate', headerCell: true },
321
- { value: '4', label: 'Gastronomy', headerCell: true },
322
- ],
323
- [
324
- { value: '1', label: 'Belgium' },
325
- {
326
- id: '11',
327
- componentType: 'CheckboxBoolean',
328
- response: {
329
- name: 'CHECKBOX_BOOLEAN_11',
330
- valueState: [
331
- { valueType: 'COLLECTED', value: true },
332
- { valueType: 'FORCED', value: null },
333
- { valueType: 'EDITED', value: null },
334
- ],
335
- },
336
- },
337
- {
338
- id: '12',
339
- componentType: 'CheckboxBoolean',
340
- response: {
341
- name: 'CHECKBOX_BOOLEAN_12',
342
- valueState: [
343
- { valueType: 'COLLECTED', value: false },
344
- { valueType: 'FORCED', value: null },
345
- { valueType: 'EDITED', value: null },
346
- ],
347
- },
348
- },
349
- {
350
- id: '13',
351
- componentType: 'CheckboxBoolean',
352
- response: {
353
- name: 'CHECKBOX_BOOLEAN_13',
354
- valueState: [
355
- { valueType: 'COLLECTED', value: false },
356
- { valueType: 'FORCED', value: true },
357
- { valueType: 'EDITED', value: false },
358
- ],
359
- },
360
- },
361
- {
362
- id: '14',
363
- componentType: 'CheckboxBoolean',
364
- response: {
365
- name: 'CHECKBOX_BOOLEAN_14',
366
- valueState: [
367
- { valueType: 'COLLECTED', value: null },
368
- { valueType: 'FORCED', value: null },
369
- { valueType: 'EDITED', value: null },
370
- ],
371
- },
372
- },
373
- ],
374
- [
375
- { value: '2', label: 'France' },
376
- {
377
- id: '21',
378
- componentType: 'CheckboxBoolean',
379
- response: {
380
- name: 'CHECKBOX_BOOLEAN_21',
381
- valueState: [
382
- { valueType: 'COLLECTED', value: null },
383
- { valueType: 'FORCED', value: null },
384
- { valueType: 'EDITED', value: null },
385
- ],
386
- },
387
- },
388
- {
389
- id: '22',
390
- componentType: 'CheckboxBoolean',
391
- response: {
392
- name: 'CHECKBOX_BOOLEAN_22',
393
- valueState: [
394
- { valueType: 'COLLECTED', value: false },
395
- { valueType: 'FORCED', value: true },
396
- { valueType: 'EDITED', value: null },
397
- ],
398
- },
399
- },
400
- {
401
- id: '23',
402
- componentType: 'CheckboxBoolean',
403
- response: {
404
- name: 'CHECKBOX_BOOLEAN_23',
405
- valueState: [
406
- { valueType: 'COLLECTED', value: null },
407
- { valueType: 'FORCED', value: null },
408
- { valueType: 'EDITED', value: null },
409
- ],
410
- },
411
- },
412
- {
413
- id: '24',
414
- componentType: 'CheckboxBoolean',
415
- response: {
416
- name: 'CHECKBOX_BOOLEAN_24',
417
- valueState: [
418
- { valueType: 'COLLECTED', value: null },
419
- { valueType: 'FORCED', value: null },
420
- { valueType: 'EDITED', value: null },
421
- ],
422
- },
423
- },
424
- ],
425
- [
426
- { value: '3', label: 'Italy' },
427
- {
428
- id: '31',
429
- componentType: 'CheckboxBoolean',
430
- response: {
431
- name: 'CHECKBOX_BOOLEAN_31',
432
- valueState: [
433
- { valueType: 'COLLECTED', value: false },
434
- { valueType: 'FORCED', value: null },
435
- { valueType: 'EDITED', value: null },
436
- ],
437
- },
438
- },
439
- {
440
- id: '32',
441
- componentType: 'CheckboxBoolean',
442
- response: {
443
- name: 'CHECKBOX_BOOLEAN_32',
444
- valueState: [
445
- { valueType: 'COLLECTED', value: false },
446
- { valueType: 'FORCED', value: true },
447
- { valueType: 'EDITED', value: false },
448
- ],
449
- },
450
- },
451
- {
452
- id: '33',
453
- componentType: 'CheckboxBoolean',
454
- response: {
455
- name: 'CHECKBOX_BOOLEAN_33',
456
- valueState: [
457
- { valueType: 'COLLECTED', value: null },
458
- { valueType: 'FORCED', value: true },
459
- { valueType: 'EDITED', value: false },
460
- ],
461
- },
462
- },
463
- {
464
- id: '34',
465
- componentType: 'CheckboxBoolean',
466
- response: {
467
- name: 'CHECKBOX_BOOLEAN_34',
468
- valueState: [
469
- { valueType: 'COLLECTED', value: null },
470
- { valueType: 'FORCED', value: true },
471
- { valueType: 'EDITED', value: null },
472
- ],
473
- },
474
- },
475
- ],
476
- [
477
- { value: '4', label: 'Spain' },
478
- {
479
- id: '41',
480
- componentType: 'CheckboxBoolean',
481
- response: {
482
- name: 'CHECKBOX_BOOLEAN_41',
483
- valueState: [
484
- { valueType: 'COLLECTED', value: false },
485
- { valueType: 'FORCED', value: null },
486
- { valueType: 'EDITED', value: null },
487
- ],
488
- },
489
- },
490
- {
491
- id: '42',
492
- componentType: 'CheckboxBoolean',
493
- response: {
494
- name: 'CHECKBOX_BOOLEAN_42',
495
- valueState: [
496
- { valueType: 'COLLECTED', value: false },
497
- { valueType: 'FORCED', value: true },
498
- { valueType: 'EDITED', value: null },
499
- ],
500
- },
501
- },
502
- {
503
- id: '43',
504
- componentType: 'CheckboxBoolean',
505
- response: {
506
- name: 'CHECKBOX_BOOLEAN_43',
507
- valueState: [
508
- { valueType: 'COLLECTED', value: false },
509
- { valueType: 'FORCED', value: true },
510
- { valueType: 'EDITED', value: false },
511
- ],
512
- },
513
- },
514
- {
515
- id: '44',
516
- componentType: 'CheckboxBoolean',
517
- response: {
518
- name: 'CHECKBOX_BOOLEAN_44',
519
- valueState: [
520
- { valueType: 'COLLECTED', value: false },
521
- { valueType: 'FORCED', value: null },
522
- { valueType: 'EDITED', value: null },
523
- ],
524
- },
525
- },
526
- ],
527
- ]}
528
- tooltip={boolean('Tooltip', false)}
529
- />
530
- ));
531
-
532
- stories.addWithJSX('Roster', () => (
533
- <Table
534
- {...defaultProps}
535
- id="roster"
536
- label="Family composition"
537
- lines={{ min: 1, max: 9 }}
538
- cells={[
539
- [
540
- { label: 'Sex', headerCell: true },
541
- { label: 'First name', headerCell: true },
542
- { label: 'Last name', headerCell: true },
543
- { label: 'Age', headerCell: true },
544
- ],
545
- [
546
- {
547
- id: '11',
548
- componentType: 'CheckboxOne',
549
- options: [
550
- { value: '1', label: 'Man' },
551
- { value: '2', label: 'Woman' },
552
- ],
553
- response: {
554
- name: 'CHECKBOX_ONE_11',
555
- valueState: [
556
- { valueType: 'COLLECTED', value: '1' },
557
- { valueType: 'FORCED', value: '2' },
558
- { valueType: 'EDITED', value: '1' },
559
- ],
560
- },
561
- },
562
- {
563
- id: '12',
564
- componentType: 'Input',
565
- response: {
566
- name: 'INPUT_12',
567
- valueState: [
568
- { valueType: 'COLLECTED', value: null },
569
- { valueType: 'FORCED', value: 'My forced input' },
570
- ],
571
- },
572
- },
573
- {
574
- id: '13',
575
- componentType: 'Input',
576
- response: {
577
- name: 'INPUT_13',
578
- valueState: [
579
- { valueType: 'COLLECTED', value: 'My collected input' },
580
- { valueType: 'FORCED', value: 'My forced input' },
581
- { valueType: 'EDITED', value: 'My edited input' },
582
- ],
583
- },
584
- },
585
- {
586
- id: '14',
587
- componentType: 'InputNumber',
588
- response: {
589
- name: 'INPUT_NUMBER_14',
590
- valueState: [
591
- { valueType: 'COLLECTED', value: '1' },
592
- { valueType: 'FORCED', value: '2' },
593
- ],
594
- },
595
- },
596
- ],
597
- [
598
- {
599
- id: '21',
600
- componentType: 'CheckboxOne',
601
- options: [
602
- { value: '1', label: 'Man' },
603
- { value: '2', label: 'Woman' },
604
- ],
605
- response: {
606
- name: 'CHECKBOX_ONE_21',
607
- valueState: [
608
- { valueType: 'COLLECTED', value: '1' },
609
- { valueType: 'FORCED', value: '2' },
610
- { valueType: 'EDITED', value: null },
611
- ],
612
- },
613
- },
614
- {
615
- id: '22',
616
- componentType: 'Input',
617
- response: {
618
- name: 'INPUT_22',
619
- valueState: [
620
- { valueType: 'COLLECTED', value: null },
621
- { valueType: 'FORCED', value: null },
622
- { valueType: 'EDITED', value: null },
623
- ],
624
- },
625
- },
626
- {
627
- id: '23',
628
- componentType: 'Input',
629
- response: {
630
- name: 'INPUT_23',
631
- valueState: [
632
- { valueType: 'COLLECTED', value: null },
633
- { valueType: 'FORCED', value: 'My forced input' },
634
- ],
635
- },
636
- },
637
- {
638
- id: '24',
639
- componentType: 'InputNumber',
640
- response: {
641
- name: 'INPUT_NUMBER_24',
642
- valueState: [{ valueType: 'COLLECTED', value: '1' }],
643
- },
644
- },
645
- ],
646
- [
647
- {
648
- id: '31',
649
- componentType: 'CheckboxOne',
650
- options: [
651
- { value: '1', label: 'Man' },
652
- { value: '2', label: 'Woman' },
653
- ],
654
- response: {
655
- name: 'CHECKBOX_ONE_31',
656
- valueState: [
657
- { valueType: 'COLLECTED', value: null },
658
- { valueType: 'FORCED', value: null },
659
- { valueType: 'EDITED', value: null },
660
- ],
661
- },
662
- },
663
- {
664
- id: '32',
665
- componentType: 'Input',
666
- response: {
667
- name: 'INPUT_32',
668
- valueState: [
669
- { valueType: 'COLLECTED', value: null },
670
- { valueType: 'FORCED', value: null },
671
- { valueType: 'EDITED', value: 'My edited input' },
672
- ],
673
- },
674
- },
675
- {
676
- id: '33',
677
- componentType: 'Input',
678
- response: {
679
- name: 'INPUT_33',
680
- valueState: [
681
- { valueType: 'COLLECTED', value: null },
682
- { valueType: 'FORCED', value: null },
683
- ],
684
- },
685
- },
686
- {
687
- id: '34',
688
- componentType: 'InputNumber',
689
- response: {
690
- name: 'INPUT_NUMBER_34',
691
- valueState: [
692
- { valueType: 'COLLECTED', value: '1' },
693
- { valueType: 'FORCED', value: '2' },
694
- { valueType: 'EDITED', value: '3' },
695
- ],
696
- },
697
- },
698
- ],
699
- [
700
- {
701
- id: '41',
702
- componentType: 'CheckboxOne',
703
- options: [
704
- { value: '1', label: 'Man' },
705
- { value: '2', label: 'Woman' },
706
- ],
707
- response: {
708
- name: 'CHECKBOX_ONE_11',
709
- valueState: [
710
- { valueType: 'COLLECTED', value: null },
711
- { valueType: 'FORCED', value: null },
712
- { valueType: 'EDITED', value: null },
713
- ],
714
- },
715
- },
716
- {
717
- id: '42',
718
- componentType: 'Input',
719
- response: {
720
- name: 'INPUT_42',
721
- valueState: [
722
- { valueType: 'COLLECTED', value: null },
723
- { valueType: 'FORCED', value: null },
724
- ],
725
- },
726
- },
727
- {
728
- id: '43',
729
- componentType: 'Input',
730
- response: {
731
- name: 'INPUT_43',
732
- valueState: [
733
- { valueType: 'COLLECTED', value: null },
734
- { valueType: 'FORCED', value: null },
735
- { valueType: 'EDITED', value: null },
736
- ],
737
- },
738
- },
739
- {
740
- id: '44',
741
- componentType: 'InputNumber',
742
- response: {
743
- name: 'INPUT_NUMBER_44',
744
- valueState: [
745
- { valueType: 'COLLECTED', value: null },
746
- { valueType: 'FORCED', value: null },
747
- { valueType: 'EDITED', value: null },
748
- ],
749
- },
750
- },
751
- ],
752
- [
753
- {
754
- id: '51',
755
- componentType: 'CheckboxOne',
756
- options: [
757
- { value: '1', label: 'Man' },
758
- { value: '2', label: 'Woman' },
759
- ],
760
- response: {
761
- name: 'CHECKBOX_ONE_51',
762
- valueState: [
763
- { valueType: 'COLLECTED', value: null },
764
- { valueType: 'FORCED', value: null },
765
- { valueType: 'EDITED', value: null },
766
- ],
767
- },
768
- },
769
- {
770
- id: '52',
771
- componentType: 'Input',
772
- response: {
773
- name: 'INPUT_52',
774
- valueState: [
775
- { valueType: 'COLLECTED', value: null },
776
- { valueType: 'FORCED', value: null },
777
- { valueType: 'EDITED', value: null },
778
- ],
779
- },
780
- },
781
- {
782
- id: '53',
783
- componentType: 'Input',
784
- response: {
785
- name: 'INPUT_53',
786
- valueState: [
787
- { valueType: 'COLLECTED', value: null },
788
- { valueType: 'FORCED', value: null },
789
- { valueType: 'EDITED', value: null },
790
- ],
791
- },
792
- },
793
- {
794
- id: '54',
795
- componentType: 'InputNumber',
796
- response: {
797
- name: 'INPUT_NUMBER_54',
798
- valueState: [
799
- { valueType: 'COLLECTED', value: null },
800
- { valueType: 'FORCED', value: null },
801
- { valueType: 'EDITED', value: null },
802
- ],
803
- },
804
- },
805
- ],
806
- [
807
- {
808
- id: '61',
809
- componentType: 'CheckboxOne',
810
- options: [
811
- { value: '1', label: 'Man' },
812
- { value: '2', label: 'Woman' },
813
- ],
814
- response: {
815
- name: 'CHECKBOX_ONE_61',
816
- valueState: [
817
- { valueType: 'COLLECTED', value: null },
818
- { valueType: 'FORCED', value: null },
819
- { valueType: 'EDITED', value: null },
820
- ],
821
- },
822
- },
823
- {
824
- id: '62',
825
- componentType: 'Input',
826
- response: {
827
- name: 'INPUT_62',
828
- valueState: [
829
- { valueType: 'COLLECTED', value: null },
830
- { valueType: 'FORCED', value: null },
831
- ],
832
- },
833
- },
834
- {
835
- id: '63',
836
- componentType: 'Input',
837
- response: {
838
- name: 'INPUT_63',
839
- valueState: [
840
- { valueType: 'COLLECTED', value: null },
841
- { valueType: 'FORCED', value: null },
842
- { valueType: 'EDITED', value: null },
843
- ],
844
- },
845
- },
846
- {
847
- id: '64',
848
- componentType: 'InputNumber',
849
- response: {
850
- name: 'INPUT_NUMBER_64',
851
- valueState: [
852
- { valueType: 'COLLECTED', value: null },
853
- { valueType: 'FORCED', value: null },
854
- { valueType: 'EDITED', value: null },
855
- ],
856
- },
857
- },
858
- ],
859
- [
860
- {
861
- id: '71',
862
- componentType: 'CheckboxOne',
863
- options: [
864
- { value: '1', label: 'Man' },
865
- { value: '2', label: 'Woman' },
866
- ],
867
- response: {
868
- name: 'CHECKBOX_ONE_71',
869
- valueState: [
870
- { valueType: 'COLLECTED', value: null },
871
- { valueType: 'FORCED', value: null },
872
- { valueType: 'EDITED', value: null },
873
- ],
874
- },
875
- },
876
- {
877
- id: '72',
878
- componentType: 'Input',
879
- response: {
880
- name: 'INPUT_72',
881
- valueState: [
882
- { valueType: 'COLLECTED', value: null },
883
- { valueType: 'FORCED', value: null },
884
- ],
885
- },
886
- },
887
- {
888
- id: '73',
889
- componentType: 'Input',
890
- response: {
891
- name: 'INPUT_73',
892
- valueState: [
893
- { valueType: 'COLLECTED', value: null },
894
- { valueType: 'FORCED', value: null },
895
- { valueType: 'EDITED', value: null },
896
- ],
897
- },
898
- },
899
- {
900
- id: '74',
901
- componentType: 'InputNumber',
902
- response: {
903
- name: 'INPUT_NUMBER_74',
904
- valueState: [
905
- { valueType: 'COLLECTED', value: null },
906
- { valueType: 'FORCED', value: null },
907
- { valueType: 'EDITED', value: null },
908
- ],
909
- },
910
- },
911
- ],
912
- [
913
- {
914
- id: '81',
915
- componentType: 'CheckboxOne',
916
- options: [
917
- { value: '1', label: 'Man' },
918
- { value: '2', label: 'Woman' },
919
- ],
920
- response: {
921
- name: 'CHECKBOX_ONE_81',
922
- valueState: [
923
- { valueType: 'COLLECTED', value: null },
924
- { valueType: 'FORCED', value: null },
925
- { valueType: 'EDITED', value: null },
926
- ],
927
- },
928
- },
929
- {
930
- id: '82',
931
- componentType: 'Input',
932
- response: {
933
- name: 'INPUT_82',
934
- valueState: [
935
- { valueType: 'COLLECTED', value: null },
936
- { valueType: 'FORCED', value: null },
937
- { valueType: 'EDITED', value: null },
938
- ],
939
- },
940
- },
941
- {
942
- id: '83',
943
- componentType: 'Input',
944
- response: {
945
- name: 'INPUT_83',
946
- valueState: [
947
- { valueType: 'COLLECTED', value: null },
948
- { valueType: 'FORCED', value: null },
949
- ],
950
- },
951
- },
952
- {
953
- id: '84',
954
- componentType: 'InputNumber',
955
- response: {
956
- name: 'INPUT_NUMBER_84',
957
- valueState: [
958
- { valueType: 'COLLECTED', value: null },
959
- { valueType: 'FORCED', value: null },
960
- { valueType: 'EDITED', value: null },
961
- ],
962
- },
963
- },
964
- ],
965
- [
966
- {
967
- id: '91',
968
- componentType: 'CheckboxOne',
969
- options: [
970
- { value: '1', label: 'Man' },
971
- { value: '2', label: 'Woman' },
972
- ],
973
- response: {
974
- name: 'CHECKBOX_ONE_91',
975
- valueState: [
976
- { valueType: 'COLLECTED', value: null },
977
- { valueType: 'FORCED', value: null },
978
- { valueType: 'EDITED', value: null },
979
- ],
980
- },
981
- },
982
- {
983
- id: '92',
984
- componentType: 'Input',
985
- response: {
986
- name: 'INPUT_92',
987
- valueState: [
988
- { valueType: 'COLLECTED', value: null },
989
- { valueType: 'FORCED', value: null },
990
- { valueType: 'EDITED', value: null },
991
- ],
992
- },
993
- },
994
- {
995
- id: '93',
996
- componentType: 'Input',
997
- response: {
998
- name: 'INPUT_93',
999
- valueState: [
1000
- { valueType: 'COLLECTED', value: null },
1001
- { valueType: 'FORCED', value: null },
1002
- ],
1003
- },
1004
- },
1005
- {
1006
- id: '94',
1007
- componentType: 'InputNumber',
1008
- response: {
1009
- name: 'INPUT_NUMBER_94',
1010
- valueState: [
1011
- { valueType: 'COLLECTED', value: null },
1012
- { valueType: 'FORCED', value: null },
1013
- { valueType: 'EDITED', value: null },
1014
- ],
1015
- },
1016
- },
1017
- ],
1018
- ]}
1019
- tooltip={boolean('Tooltip', false)}
1020
- />
1021
- ));
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import { withReadme } from 'storybook-readme';
4
+ import Orchestrator from '../utils/orchestrator';
5
+ import readme from './README.md';
6
+ import { titleDecorator } from 'utils/lib';
7
+ import dataDefault from './data-default';
8
+ import dataOneAxisOneMeasure from './data-one-axis-one-measure';
9
+ import dataOneAxisTwoMeasures from './data-one-axis-two-measures';
10
+ import dataOneHierarchicalAxis from './data-one-hierarchical-axis';
11
+ import dataTwoAxisOneMeasure from './data-two-axis-one-measure';
12
+ import dataRoster from './data-roster';
13
+ import { positioningOptions, featuresOptions } from '../utils/options';
14
+ import { text, boolean, select, object } from '@storybook/addon-knobs/react';
15
+
16
+ const stories = storiesOf('Table', module)
17
+ .addDecorator(withReadme(readme))
18
+ .addDecorator((Component) => {
19
+ const WrappedComponent = titleDecorator(Component);
20
+ return <WrappedComponent title="<Table />" />;
21
+ });
22
+
23
+ stories.addWithJSX('Default', () => (
24
+ <Orchestrator
25
+ id="default"
26
+ source={dataDefault}
27
+ label={text('Label', '"I\'m the label of the Table"')}
28
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
29
+ bindings={object('Bindings', { test: 'test' })}
30
+ />
31
+ ));
32
+
33
+ stories.addWithJSX('OneAxisOneMeasure', () => (
34
+ <Orchestrator
35
+ id="default"
36
+ source={dataOneAxisOneMeasure}
37
+ missing={boolean('Missing', false)}
38
+ management={boolean('Management', false)}
39
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
40
+ />
41
+ ));
42
+
43
+ stories.addWithJSX('OneAxisTwoMeasure', () => (
44
+ <Orchestrator
45
+ id="default"
46
+ source={dataOneAxisTwoMeasures}
47
+ missing={boolean('Missing', false)}
48
+ management={boolean('Management', false)}
49
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
50
+ />
51
+ ));
52
+
53
+ stories.addWithJSX('OneHierarchicalAxis', () => (
54
+ <Orchestrator
55
+ id="default"
56
+ source={dataOneHierarchicalAxis}
57
+ missing={boolean('Missing', false)}
58
+ management={boolean('Management', false)}
59
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
60
+ />
61
+ ));
62
+
63
+ stories.addWithJSX('TwoAxisOneMeasure', () => (
64
+ <Orchestrator
65
+ id="default"
66
+ source={dataTwoAxisOneMeasure}
67
+ missing={boolean('Missing', false)}
68
+ management={boolean('Management', false)}
69
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
70
+ />
71
+ ));
72
+
73
+ stories.addWithJSX('Roster', () => (
74
+ <Orchestrator
75
+ id="default"
76
+ source={dataRoster}
77
+ missing={boolean('Missing', false)}
78
+ management={boolean('Management', false)}
79
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
80
+ hideBtn={boolean('Hide button', false)}
81
+ />
82
+ ));