@inseefr/lunatic 3.5.7 → 3.5.8

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 (235) hide show
  1. package/components/shared/Combobox/Combobox.stories.d.ts +3 -2
  2. package/components/shared/Combobox/Combobox.stories.js +26 -21
  3. package/components/shared/Combobox/Combobox.stories.js.map +1 -1
  4. package/esm/components/shared/Combobox/Combobox.stories.d.ts +3 -2
  5. package/esm/components/shared/Combobox/Combobox.stories.js +28 -24
  6. package/esm/components/shared/Combobox/Combobox.stories.js.map +1 -1
  7. package/esm/hooks/useLocalStorage.d.ts +1 -0
  8. package/esm/hooks/useLocalStorage.js +31 -0
  9. package/esm/hooks/useLocalStorage.js.map +1 -0
  10. package/esm/type.source.d.ts +6 -0
  11. package/esm/use-lunatic/commons/compile-controls.js +22 -14
  12. package/esm/use-lunatic/commons/compile-controls.js.map +1 -1
  13. package/esm/use-lunatic/commons/fill-components/fill-component-expressions.js +4 -1
  14. package/esm/use-lunatic/commons/fill-components/fill-component-expressions.js.map +1 -1
  15. package/esm/use-lunatic/hooks/use-page-has-response.js +1 -1
  16. package/esm/use-lunatic/hooks/use-page-has-response.js.map +1 -1
  17. package/esm/use-lunatic/hooks/useOverview.spec.js +2 -2
  18. package/esm/use-lunatic/hooks/useOverview.spec.js.map +1 -1
  19. package/esm/utils/number.d.ts +4 -0
  20. package/esm/utils/number.js +12 -0
  21. package/esm/utils/number.js.map +1 -1
  22. package/esm/utils/object.d.ts +10 -0
  23. package/esm/utils/object.js +26 -0
  24. package/esm/utils/object.js.map +1 -1
  25. package/hooks/useLocalStorage.d.ts +1 -0
  26. package/hooks/useLocalStorage.js +34 -0
  27. package/hooks/useLocalStorage.js.map +1 -0
  28. package/package.json +76 -137
  29. package/src/components/shared/Combobox/Combobox.stories.tsx +48 -49
  30. package/src/hooks/useLocalStorage.ts +37 -0
  31. package/src/json.d.ts +16 -0
  32. package/src/stories/accordion/accordion.stories.tsx +21 -0
  33. package/src/stories/behaviour/cleaning/cleaning.stories.tsx +40 -0
  34. package/src/stories/behaviour/controls/controls.stories.tsx +51 -0
  35. package/src/stories/behaviour/disabled/disabled.stories.tsx +29 -0
  36. package/src/stories/behaviour/filter/filter.stories.tsx +34 -0
  37. package/src/stories/behaviour/missing/missing.stories.tsx +31 -0
  38. package/src/stories/behaviour/overview/overview.stories.tsx +61 -0
  39. package/src/stories/{overview/sourceWithHierarchy.json → behaviour/overview/source.json} +1 -1
  40. package/src/stories/{overview → behaviour/overview}/sourceLoop.json +1 -1
  41. package/src/stories/behaviour/performance/performance.stories.tsx +29 -0
  42. package/src/stories/behaviour/resizing/resizing.stories.tsx +34 -0
  43. package/src/stories/behaviour/slots.stories.tsx +34 -0
  44. package/src/stories/checkbox/checkbox.stories.tsx +75 -0
  45. package/src/stories/{checkbox-group/sourceLoop.json → checkbox/sourceGroupLoop.json} +1 -1
  46. package/src/stories/datepicker/datepicker.stories.tsx +21 -0
  47. package/src/stories/declaration/declaration.stories.tsx +27 -0
  48. package/src/stories/dropdown/dropdown.stories.tsx +27 -0
  49. package/src/stories/duration/duration.stories.tsx +27 -0
  50. package/src/stories/filter-description/filter-description.stories.tsx +28 -0
  51. package/src/stories/input/input.stories.tsx +21 -0
  52. package/src/stories/input-number/input-number.stories.tsx +35 -0
  53. package/src/stories/loop/loop.stories.tsx +35 -0
  54. package/src/stories/loop/roster-for-loop.stories.tsx +59 -0
  55. package/src/stories/pairwise/pairwise.stories.tsx +30 -0
  56. package/src/stories/paste.stories.tsx +85 -0
  57. package/src/stories/question/question.stories.tsx +21 -0
  58. package/src/stories/questionnaires/logement/logement.stories.tsx +26 -0
  59. package/src/stories/questionnaires/recensement/recensement.stories.tsx +28 -0
  60. package/src/stories/questionnaires/rp/rp.stories.tsx +21 -0
  61. package/src/stories/questionnaires/simpsons/simpsons.stories.tsx +31 -0
  62. package/src/stories/radio/radio.stories.tsx +53 -0
  63. package/src/stories/roundabout/roundabout.stories.tsx +37 -0
  64. package/src/stories/roundabout/source.json +1 -0
  65. package/src/stories/sequence/sequence.stories.tsx +28 -0
  66. package/src/stories/suggester/source-option-responses.json +1 -1
  67. package/src/stories/suggester/suggester.stories.tsx +68 -0
  68. package/src/stories/summary/source.json +22 -1
  69. package/src/stories/summary/summary.stories.tsx +31 -0
  70. package/src/stories/table/table.stories.tsx +35 -0
  71. package/src/stories/text/text.stories.tsx +38 -0
  72. package/src/stories/textarea/textarea.stories.tsx +21 -0
  73. package/src/stories/utils/Orchestrator.tsx +310 -0
  74. package/src/stories/utils/OrchestratorData.tsx +176 -0
  75. package/src/stories/utils/OrchestratorOverview.tsx +70 -0
  76. package/src/stories/utils/OrchestratorSidebar.tsx +119 -0
  77. package/src/stories/utils/SchemaValidator.tsx +29 -0
  78. package/src/stories/utils/referentiel.ts +9 -0
  79. package/src/type.source.ts +6 -0
  80. package/src/use-lunatic/commons/compile-controls.ts +36 -18
  81. package/src/use-lunatic/commons/fill-components/fill-component-expressions.ts +4 -1
  82. package/src/use-lunatic/hooks/use-page-has-response.ts +1 -1
  83. package/src/use-lunatic/hooks/useOverview.spec.ts +3 -2
  84. package/src/use-lunatic/use-lunatic.test.ts +53 -40
  85. package/src/utils/number.ts +13 -0
  86. package/src/utils/object.ts +40 -0
  87. package/tsconfig.build.tsbuildinfo +1 -1
  88. package/type.source.d.ts +6 -0
  89. package/use-lunatic/commons/compile-controls.js +21 -13
  90. package/use-lunatic/commons/compile-controls.js.map +1 -1
  91. package/use-lunatic/commons/fill-components/fill-component-expressions.js +5 -2
  92. package/use-lunatic/commons/fill-components/fill-component-expressions.js.map +1 -1
  93. package/use-lunatic/hooks/use-page-has-response.js +2 -2
  94. package/use-lunatic/hooks/use-page-has-response.js.map +1 -1
  95. package/use-lunatic/hooks/useOverview.spec.js +8 -8
  96. package/use-lunatic/hooks/useOverview.spec.js.map +1 -1
  97. package/utils/number.d.ts +4 -0
  98. package/utils/number.js +13 -0
  99. package/utils/number.js.map +1 -1
  100. package/utils/object.d.ts +10 -0
  101. package/utils/object.js +30 -0
  102. package/utils/object.js.map +1 -1
  103. package/esm/stories/overview/sourceWithHierarchy.json +0 -5151
  104. package/esm/tests/utils/lunatic.d.ts +0 -15
  105. package/esm/tests/utils/lunatic.js +0 -27
  106. package/esm/tests/utils/lunatic.js.map +0 -1
  107. package/esm/use-lunatic/replace-component-sequence.d.ts +0 -36
  108. package/esm/use-lunatic/replace-component-sequence.js +0 -19
  109. package/esm/use-lunatic/replace-component-sequence.js.map +0 -1
  110. package/esm/use-lunatic/test.utils.d.ts +0 -2
  111. package/esm/use-lunatic/test.utils.js +0 -13
  112. package/esm/use-lunatic/test.utils.js.map +0 -1
  113. package/esm/utils/is-object.d.ts +0 -4
  114. package/esm/utils/is-object.js +0 -7
  115. package/esm/utils/is-object.js.map +0 -1
  116. package/esm/utils/to-number.d.ts +0 -4
  117. package/esm/utils/to-number.js +0 -13
  118. package/esm/utils/to-number.js.map +0 -1
  119. package/src/stories/accordion/accordion.stories.jsx +0 -17
  120. package/src/stories/behaviour/cleaning/cleaning.stories.jsx +0 -69
  121. package/src/stories/behaviour/controls/controls.stories.jsx +0 -81
  122. package/src/stories/behaviour/filter/dataLoop.json +0 -14
  123. package/src/stories/behaviour/filter/filter.stories.jsx +0 -36
  124. package/src/stories/behaviour/missing/missing.stories.jsx +0 -69
  125. package/src/stories/behaviour/others/V2_DeclarationsSimples.json +0 -908
  126. package/src/stories/behaviour/others/V2_MinMaxSum_Boucles.json +0 -489
  127. package/src/stories/behaviour/others/V2_QuestSimple_Boucles.json +0 -3919
  128. package/src/stories/behaviour/others/V2_TCMRallyeGames.json +0 -2760
  129. package/src/stories/behaviour/others/test-dylan.json +0 -538
  130. package/src/stories/behaviour/others/test.stories.jsx +0 -78
  131. package/src/stories/behaviour/paste/source.json +0 -32
  132. package/src/stories/behaviour/paste/test.stories.jsx +0 -62
  133. package/src/stories/behaviour/performance/performance.stories.jsx +0 -26
  134. package/src/stories/behaviour/resizing/resizing.stories.jsx +0 -60
  135. package/src/stories/behaviour/slots.stories.jsx +0 -32
  136. package/src/stories/checkbox-boolean/checkboxBoolean.stories.jsx +0 -17
  137. package/src/stories/checkbox-group/checkbox-group.stories.jsx +0 -77
  138. package/src/stories/checkbox-one/checkboxOne.stories.jsx +0 -53
  139. package/src/stories/date-picker/data.json +0 -3
  140. package/src/stories/date-picker/datepicker.stories.jsx +0 -26
  141. package/src/stories/declaration/data.json +0 -1
  142. package/src/stories/declaration/input.stories.jsx +0 -18
  143. package/src/stories/disabled/data.json +0 -16
  144. package/src/stories/disabled/disabled.stories.jsx +0 -18
  145. package/src/stories/dropdown/data.json +0 -8
  146. package/src/stories/dropdown/dropdown.stories.jsx +0 -25
  147. package/src/stories/duration/duration.stories.jsx +0 -25
  148. package/src/stories/filter-description/filter-description.stories.jsx +0 -37
  149. package/src/stories/input/data.json +0 -1
  150. package/src/stories/input/input.stories.jsx +0 -18
  151. package/src/stories/input-number/input-number.stories.jsx +0 -23
  152. package/src/stories/loop/loop.stories.jsx +0 -29
  153. package/src/stories/loop/roster-for-loop.stories.jsx +0 -46
  154. package/src/stories/markdown/markdown.stories.jsx +0 -20
  155. package/src/stories/overview/data.json +0 -1
  156. package/src/stories/overview/dataLoop.json +0 -93
  157. package/src/stories/overview/overview.stories.jsx +0 -44
  158. package/src/stories/overview/source.json +0 -25
  159. package/src/stories/pairwise/data.json +0 -12
  160. package/src/stories/pairwise/pairwise-links.stories.jsx +0 -48
  161. package/src/stories/question/question.stories.jsx +0 -16
  162. package/src/stories/questionnaires/logement/logement.stories.jsx +0 -59
  163. package/src/stories/questionnaires/recensement/data.json +0 -12
  164. package/src/stories/questionnaires/recensement/recensement.stories.jsx +0 -35
  165. package/src/stories/questionnaires/rp/data.json +0 -5
  166. package/src/stories/questionnaires/rp/rp.stories.jsx +0 -23
  167. package/src/stories/questionnaires/simpsons/simpsons.stories.jsx +0 -246
  168. package/src/stories/radio/radio.stories.jsx +0 -78
  169. package/src/stories/roundabout/data1.json +0 -13
  170. package/src/stories/roundabout/data2.json +0 -16
  171. package/src/stories/roundabout/roundabout.stories.jsx +0 -32
  172. package/src/stories/sequence/sequence.stories.jsx +0 -29
  173. package/src/stories/suggester/suggester.stories.jsx +0 -71
  174. package/src/stories/summary/data.json +0 -16
  175. package/src/stories/summary/summary.stories.jsx +0 -23
  176. package/src/stories/switch/README.md +0 -29
  177. package/src/stories/switch/data-forced.json +0 -40
  178. package/src/stories/switch/source.json +0 -64
  179. package/src/stories/switch/switch.stories.jsx +0 -17
  180. package/src/stories/table/data.json +0 -1
  181. package/src/stories/table/table.stories.jsx +0 -30
  182. package/src/stories/text/data-roster.json +0 -5
  183. package/src/stories/text/text.stories.jsx +0 -20
  184. package/src/stories/textarea/data.json +0 -1
  185. package/src/stories/textarea/textarea.stories.jsx +0 -18
  186. package/src/stories/utils/SchemaValidator.jsx +0 -40
  187. package/src/stories/utils/default-arg-types.js +0 -39
  188. package/src/stories/utils/default-args.js +0 -3
  189. package/src/stories/utils/options.js +0 -19
  190. package/src/stories/utils/orchestrator.jsx +0 -267
  191. package/src/stories/utils/orchestrator.scss +0 -66
  192. package/src/stories/utils/overview.jsx +0 -39
  193. package/src/stories/utils/overview.scss +0 -37
  194. package/src/stories/utils/referentiel.js +0 -7
  195. package/src/tests/utils/e2e.js +0 -91
  196. package/src/tests/utils/lunatic.ts +0 -33
  197. package/src/use-lunatic/replace-component-sequence.ts +0 -25
  198. package/src/use-lunatic/test.utils.ts +0 -17
  199. package/src/utils/is-object.ts +0 -6
  200. package/src/utils/to-number.ts +0 -12
  201. package/stories/overview/sourceWithHierarchy.json +0 -5151
  202. package/tests/utils/lunatic.d.ts +0 -15
  203. package/tests/utils/lunatic.js +0 -31
  204. package/tests/utils/lunatic.js.map +0 -1
  205. package/use-lunatic/replace-component-sequence.d.ts +0 -36
  206. package/use-lunatic/replace-component-sequence.js +0 -22
  207. package/use-lunatic/replace-component-sequence.js.map +0 -1
  208. package/use-lunatic/test.utils.d.ts +0 -2
  209. package/use-lunatic/test.utils.js +0 -17
  210. package/use-lunatic/test.utils.js.map +0 -1
  211. package/utils/is-object.d.ts +0 -4
  212. package/utils/is-object.js +0 -10
  213. package/utils/is-object.js.map +0 -1
  214. package/utils/to-number.d.ts +0 -4
  215. package/utils/to-number.js +0 -16
  216. package/utils/to-number.js.map +0 -1
  217. /package/src/stories/behaviour/cleaning/{loop.json → source-loop-scopes.json} +0 -0
  218. /package/src/stories/behaviour/controls/{boucles-n.json → source-boucles-n.json} +0 -0
  219. /package/src/stories/behaviour/controls/{loop.json → source-loop.json} +0 -0
  220. /package/src/stories/behaviour/controls/{roundabout.json → source-roundabout.json} +0 -0
  221. /package/src/stories/behaviour/controls/{simple-numeric.json → source-simple-numeric.json} +0 -0
  222. /package/src/stories/behaviour/controls/{simple.json → source-simple.json} +0 -0
  223. /package/src/stories/{disabled → behaviour/disabled}/source.json +0 -0
  224. /package/src/stories/{checkbox-boolean → checkbox}/source.json +0 -0
  225. /package/src/stories/{checkbox-group/source.json → checkbox/sourceGroup.json} +0 -0
  226. /package/src/stories/{checkbox-group/sourceCondition.json → checkbox/sourceGroupCondition.json} +0 -0
  227. /package/src/stories/{checkbox-group/sourceDetail.json → checkbox/sourceGroupDetail.json} +0 -0
  228. /package/src/stories/{checkbox-one/source.json → checkbox/sourceOne.json} +0 -0
  229. /package/src/stories/{checkbox-one/sourceDetail.json → checkbox/sourceOneDetail.json} +0 -0
  230. /package/src/stories/{date-picker → datepicker}/source.json +0 -0
  231. /package/src/stories/{markdown/source.json → declaration/sourceMarkdown.json} +0 -0
  232. /package/src/stories/duration/{mois.json → sourceMonths.json} +0 -0
  233. /package/src/stories/duration/{time.json → sourceTime.json} +0 -0
  234. /package/src/stories/filter-description/{source-options.json → sourceOptions.json} +0 -0
  235. /package/src/stories/table/{table-dynamique.json → source-dynamic.json} +0 -0
@@ -0,0 +1,51 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../../utils/Orchestrator';
6
+ import simple from './source-simple.json';
7
+ import simpleNum from './source-simple-numeric.json';
8
+ import sourceLoop from './source-loop.json';
9
+ import sourceRoundabout from './source-roundabout.json';
10
+ import boucleNTabDynamique from './source-boucles-n.json';
11
+
12
+ import { Meta } from '@storybook/react';
13
+
14
+ const meta: Meta<typeof Orchestrator> = {
15
+ title: 'Behaviour/Controls',
16
+ ...OrchestratorMeta,
17
+ };
18
+
19
+ export default meta;
20
+
21
+ export const BoucleN: OrchestratorStory = {
22
+ args: {
23
+ source: boucleNTabDynamique,
24
+ },
25
+ };
26
+
27
+ export const Simple: OrchestratorStory = {
28
+ args: {
29
+ source: simple,
30
+ },
31
+ };
32
+
33
+ export const SimpleNum: OrchestratorStory = {
34
+ args: {
35
+ source: simpleNum,
36
+ },
37
+ };
38
+
39
+ export const LinkedLoop: OrchestratorStory = {};
40
+
41
+ export const Loop: OrchestratorStory = {
42
+ args: {
43
+ source: sourceLoop,
44
+ },
45
+ };
46
+
47
+ export const Roundabout: OrchestratorStory = {
48
+ args: {
49
+ source: sourceRoundabout,
50
+ },
51
+ };
@@ -0,0 +1,29 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../../utils/Orchestrator';
6
+ import source from './source.json';
7
+
8
+ import { Meta } from '@storybook/react';
9
+
10
+ import { dataFromObject } from '../../../utils/object';
11
+
12
+ const meta: Meta<typeof Orchestrator> = {
13
+ title: 'Behaviour/Disabled',
14
+ ...OrchestratorMeta,
15
+ };
16
+
17
+ export default meta;
18
+
19
+ export const Default: OrchestratorStory = {
20
+ args: {
21
+ source,
22
+ data: dataFromObject({
23
+ NOM: 'Renaud',
24
+ DISABLED_NOM: true,
25
+ SEXE: '2',
26
+ DISABLED_SEXE: true,
27
+ }),
28
+ },
29
+ };
@@ -0,0 +1,34 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../../utils/Orchestrator';
6
+ import source from './source.json';
7
+ import sourceLoop from './sourceLoop.json';
8
+
9
+ import { Meta } from '@storybook/react';
10
+
11
+ import { dataFromObject } from '../../../utils/object';
12
+
13
+ const meta: Meta<typeof Orchestrator> = {
14
+ title: 'Behaviour/Filter',
15
+ ...OrchestratorMeta,
16
+ };
17
+
18
+ export default meta;
19
+
20
+ export const Default: OrchestratorStory = {
21
+ args: {
22
+ source,
23
+ },
24
+ };
25
+
26
+ export const WithLoop: OrchestratorStory = {
27
+ args: {
28
+ source: sourceLoop,
29
+ data: dataFromObject({
30
+ NBHAB: 2,
31
+ NAME: ['Jean', 'Paul'],
32
+ }),
33
+ },
34
+ };
@@ -0,0 +1,31 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../../utils/Orchestrator';
6
+ import source from './source.json';
7
+
8
+ import { Meta } from '@storybook/react';
9
+
10
+ const meta: Meta<typeof Orchestrator> = {
11
+ title: 'Behaviour/Missing',
12
+ ...OrchestratorMeta,
13
+ };
14
+
15
+ export default meta;
16
+
17
+ export const Default: OrchestratorStory = {
18
+ args: {
19
+ source,
20
+ initialPage: '2',
21
+ missing: true,
22
+ shortcut: true,
23
+ },
24
+ };
25
+
26
+ export const ReadOnly: OrchestratorStory = {
27
+ args: {
28
+ ...Default.args,
29
+ readOnly: true,
30
+ },
31
+ };
@@ -0,0 +1,61 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../../utils/Orchestrator';
6
+ import source from './source.json';
7
+ import sourceLoop from './sourceLoop.json';
8
+
9
+ import { Meta } from '@storybook/react';
10
+
11
+ import { dataFromObject } from '../../../utils/object';
12
+
13
+ const meta: Meta<typeof Orchestrator> = {
14
+ title: 'Behaviour/Overview',
15
+ ...OrchestratorMeta,
16
+ args: {
17
+ ...OrchestratorMeta.args,
18
+ showOverview: true,
19
+ },
20
+ };
21
+
22
+ export default meta;
23
+
24
+ export const Default: OrchestratorStory = {
25
+ args: {
26
+ source,
27
+ },
28
+ };
29
+
30
+ export const WithLoop: OrchestratorStory = {
31
+ args: {
32
+ source: sourceLoop,
33
+ data: dataFromObject({
34
+ ETAT: '1',
35
+ SATISFAIT: '1',
36
+ T_NHAB: 3,
37
+ T_PRENOM: ['Quentin', 'Luna', 'Paul'],
38
+ COMMCOMPO: 'super',
39
+ T_SEXE: ['1', '2', '1'],
40
+ T_DATENAIS: [null, null, null],
41
+ REMARQUES: [null, 'a', 'b'],
42
+ SUPERQUEST: ['ok', 'ok', null],
43
+ AUTRESUPERQUEST: ['a', 'c', 'ras'],
44
+ ENCOREUNEQ: ['wow', 'b', null],
45
+ COMMENT_QE: null,
46
+ ETAT_MISSING: null,
47
+ SATISFAIT_MISSING: null,
48
+ T_NHAB_MISSING: null,
49
+ T_PRENOM_MISSING: null,
50
+ COMMCOMPO_MISSING: null,
51
+ T_SEXE_MISSING: null,
52
+ T_DATENAIS_MISSING: [null, 'DK', 'RF'],
53
+ REMARQUES_MISSING: [null, null, null],
54
+ SUPERQUEST_MISSING: [null, null, 'DK'],
55
+ ENCOREUNEQ_MISSING: [null, null, 'RF'],
56
+ AUTRESUPERQUEST_MISSING: null,
57
+ COMMENT_QE_MISSING: null,
58
+ }),
59
+ lastReachedPage: '11.2#2',
60
+ },
61
+ };
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "../../../lunatic-schema.json",
2
+ "$schema": "../../../../lunatic-schema.json",
3
3
  "id": "i6vwi2506qf2mms",
4
4
  "modele": "SIMPSONS",
5
5
  "enoCoreVersion": "2.3.7",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "../../../lunatic-schema.json",
2
+ "$schema": "../../../../lunatic-schema.json",
3
3
  "cleaning": {
4
4
  "T_PRENOM": {
5
5
  "REMARQUES": "(PRENOM <> PRENOMREF)",
@@ -0,0 +1,29 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../../utils/Orchestrator';
6
+ import source from './source.json';
7
+
8
+ import { Meta } from '@storybook/react';
9
+ import { times } from '../../../utils/array';
10
+ import { dataFromObject } from '../../../utils/object';
11
+
12
+ const meta: Meta<typeof Orchestrator> = {
13
+ title: 'Behaviour/Performance',
14
+ ...OrchestratorMeta,
15
+ };
16
+
17
+ export default meta;
18
+
19
+ export const Default: OrchestratorStory = {
20
+ args: {
21
+ source,
22
+ data: dataFromObject({
23
+ PRENOM: times(200, (k) => `John${k}`),
24
+ NOM: times(200, (k) => `Doe${k}`),
25
+ AGE: times(200, (k) => k + 1),
26
+ BIRTHDAY: times(200, (k) => `2${k.toString().padStart(3, '0')}-01-01`),
27
+ }),
28
+ },
29
+ };
@@ -0,0 +1,34 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../../utils/Orchestrator';
6
+ import source from './source.json';
7
+ import sourceResizingCleaning from './source-resizing-cleaning.json';
8
+
9
+ import { Meta } from '@storybook/react';
10
+
11
+ import { dataFromObject } from '../../../utils/object';
12
+
13
+ const meta: Meta<typeof Orchestrator> = {
14
+ title: 'Behaviour/Resizing',
15
+ ...OrchestratorMeta,
16
+ };
17
+
18
+ export default meta;
19
+
20
+ export const Default: OrchestratorStory = {
21
+ args: {
22
+ source,
23
+ },
24
+ };
25
+
26
+ export const ResizingWithCleaning: OrchestratorStory = {
27
+ args: {
28
+ source: sourceResizingCleaning,
29
+ data: dataFromObject({
30
+ NBHAB: 2,
31
+ NAME: ['Jean', 'Paul'],
32
+ }),
33
+ },
34
+ };
@@ -0,0 +1,34 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../utils/Orchestrator';
6
+ import source from '../input/source.json';
7
+
8
+ import { Meta } from '@storybook/react';
9
+
10
+ const meta: Meta<typeof Orchestrator> = {
11
+ title: 'Behaviour/Slots',
12
+ ...OrchestratorMeta,
13
+ };
14
+
15
+ export default meta;
16
+
17
+ export const Default: OrchestratorStory = {
18
+ args: {
19
+ source,
20
+ slots: {
21
+ Input: ({ onChange, value, label }) => (
22
+ <label className="floating-label">
23
+ <input
24
+ placeholder="Nom de l'occupant"
25
+ className="input"
26
+ value={value ?? ''}
27
+ onChange={(e) => onChange(e.currentTarget.value)}
28
+ />
29
+ <span>{label}</span>
30
+ </label>
31
+ ),
32
+ },
33
+ },
34
+ };
@@ -0,0 +1,75 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../utils/Orchestrator';
6
+ import source from './source.json';
7
+ import sourceGroup from './sourceGroup.json';
8
+ import sourceGroupCondition from './sourceGroupCondition.json';
9
+ import sourceGroupDetail from './sourceGroupDetail.json';
10
+ import sourceGroupLoop from './sourceGroupLoop.json';
11
+ import sourceOne from './sourceOne.json';
12
+ import sourceOneDetail from './sourceOneDetail.json';
13
+
14
+ import { Meta } from '@storybook/react';
15
+
16
+ const meta: Meta<typeof Orchestrator> = {
17
+ title: 'Components/Checkbox',
18
+ ...OrchestratorMeta,
19
+ };
20
+
21
+ export default meta;
22
+
23
+ export const CheckboxBoolean: OrchestratorStory = {
24
+ args: {
25
+ source,
26
+ },
27
+ };
28
+
29
+ export const CheckboxGroup: OrchestratorStory = {
30
+ args: {
31
+ source: sourceGroup,
32
+ shortcut: true,
33
+ },
34
+ };
35
+
36
+ export const GroupWithCondition: OrchestratorStory = {
37
+ args: {
38
+ source: sourceGroupCondition,
39
+ shortcut: true,
40
+ },
41
+ };
42
+
43
+ export const CheckboxGroupReadOnly: OrchestratorStory = {
44
+ args: {
45
+ readOnly: true,
46
+ source: sourceGroup,
47
+ shortcut: true,
48
+ },
49
+ };
50
+
51
+ export const CheckboxGroupWithDetail: OrchestratorStory = {
52
+ args: {
53
+ source: sourceGroupDetail,
54
+ shortcut: true,
55
+ },
56
+ };
57
+
58
+ export const CheckboxGroupInLoop: OrchestratorStory = {
59
+ args: {
60
+ source: sourceGroupLoop,
61
+ shortcut: true,
62
+ },
63
+ };
64
+
65
+ export const CheckboxOne: OrchestratorStory = {
66
+ args: {
67
+ source: sourceOne,
68
+ },
69
+ };
70
+
71
+ export const CheckboxOneWithDetail: OrchestratorStory = {
72
+ args: {
73
+ source: sourceOneDetail,
74
+ },
75
+ };
@@ -1,5 +1,5 @@
1
1
  {
2
- "maxPage": "5",
2
+ "maxPage": "1",
3
3
  "components": [
4
4
  {
5
5
  "id": "loop",
@@ -0,0 +1,21 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../utils/Orchestrator';
6
+
7
+ import source from './source.json';
8
+ import { Meta } from '@storybook/react';
9
+
10
+ const meta: Meta<typeof Orchestrator> = {
11
+ title: 'Components/Datepicker',
12
+ ...OrchestratorMeta,
13
+ };
14
+
15
+ export default meta;
16
+
17
+ export const Default: OrchestratorStory = {
18
+ args: {
19
+ source,
20
+ },
21
+ };
@@ -0,0 +1,27 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../utils/Orchestrator';
6
+ import source from './source.json';
7
+ import sourceMarkdown from './sourceMarkdown.json';
8
+ import { Meta } from '@storybook/react';
9
+
10
+ const meta: Meta<typeof Orchestrator> = {
11
+ title: 'Components/Declaration',
12
+ ...OrchestratorMeta,
13
+ };
14
+
15
+ export default meta;
16
+
17
+ export const Default: OrchestratorStory = {
18
+ args: {
19
+ source,
20
+ },
21
+ };
22
+
23
+ export const Markdown: OrchestratorStory = {
24
+ args: {
25
+ source: sourceMarkdown,
26
+ },
27
+ };
@@ -0,0 +1,27 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../utils/Orchestrator';
6
+ import source from './source.json';
7
+
8
+ import { Meta } from '@storybook/react';
9
+
10
+ import { dataFromObject } from '../../utils/object';
11
+
12
+ const meta: Meta<typeof Orchestrator> = {
13
+ title: 'Components/Dropdown',
14
+ ...OrchestratorMeta,
15
+ };
16
+
17
+ export default meta;
18
+
19
+ export const Default: OrchestratorStory = {
20
+ args: {
21
+ source,
22
+ data: dataFromObject({
23
+ STATE: '2',
24
+ STATE2: '3',
25
+ }),
26
+ },
27
+ };
@@ -0,0 +1,27 @@
1
+ import { Meta } from '@storybook/react';
2
+ import {
3
+ type Orchestrator,
4
+ OrchestratorMeta,
5
+ type OrchestratorStory,
6
+ } from '../utils/Orchestrator';
7
+ import sourceMonths from './sourceMonths.json';
8
+ import sourceTime from './sourceTime.json';
9
+
10
+ const meta: Meta<typeof Orchestrator> = {
11
+ title: 'Components/Duration',
12
+ ...OrchestratorMeta,
13
+ };
14
+
15
+ export default meta;
16
+
17
+ export const DateDuration: OrchestratorStory = {
18
+ args: {
19
+ source: sourceMonths,
20
+ },
21
+ };
22
+
23
+ export const TimeDuration: OrchestratorStory = {
24
+ args: {
25
+ source: sourceTime,
26
+ },
27
+ };
@@ -0,0 +1,28 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../utils/Orchestrator';
6
+ import source from './source.json';
7
+ import sourceOptions from './sourceOptions.json';
8
+
9
+ import { Meta } from '@storybook/react';
10
+
11
+ const meta: Meta<typeof Orchestrator> = {
12
+ title: 'Components/FilterDescription',
13
+ ...OrchestratorMeta,
14
+ };
15
+
16
+ export default meta;
17
+
18
+ export const Default: OrchestratorStory = {
19
+ args: {
20
+ source,
21
+ },
22
+ };
23
+
24
+ export const Options: OrchestratorStory = {
25
+ args: {
26
+ source: sourceOptions,
27
+ },
28
+ };
@@ -0,0 +1,21 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../utils/Orchestrator';
6
+ import source from './source.json';
7
+
8
+ import { Meta } from '@storybook/react';
9
+
10
+ const meta: Meta<typeof Orchestrator> = {
11
+ title: 'Components/Input',
12
+ ...OrchestratorMeta,
13
+ };
14
+
15
+ export default meta;
16
+
17
+ export const Default: OrchestratorStory = {
18
+ args: {
19
+ source,
20
+ },
21
+ };
@@ -0,0 +1,35 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../utils/Orchestrator';
6
+ import source from './source.json';
7
+ import sourceBigNumber from './source-big-number.json';
8
+ import sourceEuro from './source-euro.json';
9
+
10
+ import { Meta } from '@storybook/react';
11
+
12
+ const meta: Meta<typeof Orchestrator> = {
13
+ title: 'Components/InputNumber',
14
+ ...OrchestratorMeta,
15
+ };
16
+
17
+ export default meta;
18
+
19
+ export const Default: OrchestratorStory = {
20
+ args: {
21
+ source,
22
+ },
23
+ };
24
+
25
+ export const DynamicUnit: OrchestratorStory = {
26
+ args: {
27
+ source: sourceEuro,
28
+ },
29
+ };
30
+
31
+ export const BigNumber: OrchestratorStory = {
32
+ args: {
33
+ source: sourceBigNumber,
34
+ },
35
+ };
@@ -0,0 +1,35 @@
1
+ import {
2
+ type Orchestrator,
3
+ OrchestratorMeta,
4
+ type OrchestratorStory,
5
+ } from '../utils/Orchestrator';
6
+ import sourceBloc from './source-bloc.json';
7
+ import sourcePaginated from './source-paginated.json';
8
+
9
+ import { Meta } from '@storybook/react';
10
+
11
+ const meta: Meta<typeof Orchestrator> = {
12
+ title: 'Components/Loop',
13
+ ...OrchestratorMeta,
14
+ };
15
+
16
+ export default meta;
17
+
18
+ export const Default: OrchestratorStory = {
19
+ args: {
20
+ source: sourceBloc,
21
+ },
22
+ };
23
+
24
+ export const Paginated: OrchestratorStory = {
25
+ args: {
26
+ source: sourcePaginated,
27
+ },
28
+ };
29
+
30
+ export const ReadOnly: OrchestratorStory = {
31
+ args: {
32
+ source: sourceBloc,
33
+ readOnly: true,
34
+ },
35
+ };
@@ -0,0 +1,59 @@
1
+ import { sleep } from '../../tests/utils/timer';
2
+ import {
3
+ type Orchestrator,
4
+ OrchestratorMeta,
5
+ type OrchestratorStory,
6
+ } from '../utils/Orchestrator';
7
+ import source from './source-roster.json';
8
+
9
+ import { Meta } from '@storybook/react';
10
+ import { userEvent, within } from '@storybook/test';
11
+
12
+ const meta: Meta<typeof Orchestrator> = {
13
+ title: 'Components/Loop/Roster',
14
+ ...OrchestratorMeta,
15
+ };
16
+
17
+ export default meta;
18
+
19
+ export const Default: OrchestratorStory = {
20
+ args: {
21
+ source,
22
+ },
23
+ };
24
+
25
+ export const ReadOnly: OrchestratorStory = {
26
+ args: {
27
+ source,
28
+ readOnly: true,
29
+ },
30
+ };
31
+
32
+ export const Filled: OrchestratorStory = {
33
+ args: Default.args,
34
+ play: async ({ canvasElement }) => {
35
+ await sleep(1000);
36
+ const canvas = within(canvasElement);
37
+ canvas.getByRole('button', { name: 'Ajouter une ligne' }).click();
38
+ await sleep(10);
39
+ const inputs = canvas.getAllByRole('textbox');
40
+ await userEvent.type(inputs[0], 'John', {
41
+ delay: 10,
42
+ });
43
+ await userEvent.type(inputs[3], 'Jane', {
44
+ delay: 10,
45
+ });
46
+ canvas.getByRole('button', { name: 'Next' }).click();
47
+ await userEvent.type(
48
+ await canvas.findByRole('textbox', { name: /John/i }),
49
+ '18'
50
+ );
51
+ canvas.getByRole('button', { name: 'Next' }).click();
52
+ await userEvent.type(
53
+ await canvas.findByRole('textbox', { name: /Jane/i }),
54
+ '20'
55
+ );
56
+ canvas.getByRole('button', { name: 'Next' }).click();
57
+ await canvas.findByText('End');
58
+ },
59
+ };