@inseefr/lunatic 0.2.2-experimental → 0.2.3-prisme

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 (219) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +25 -23
  3. package/lib/index.js +1191 -475
  4. package/lib/index.js.map +1 -1
  5. package/package.json +174 -172
  6. package/src/components/breadcrumb/breadcrumb.scss +22 -22
  7. package/src/components/checkbox/boolean.js +172 -172
  8. package/src/components/checkbox/checkbox.scss +73 -73
  9. package/src/components/checkbox/group.js +231 -231
  10. package/src/components/checkbox/one.js +11 -11
  11. package/src/components/component-wrapper/controls/component.js +70 -0
  12. package/src/components/component-wrapper/controls/controls.scss +6 -0
  13. package/src/components/component-wrapper/controls/index.js +1 -0
  14. package/src/components/component-wrapper/controls/validators/datepicker.js +44 -0
  15. package/src/components/component-wrapper/controls/validators/index.js +16 -0
  16. package/src/components/component-wrapper/controls/validators/input-number.js +23 -0
  17. package/src/components/{missing-wrapper → component-wrapper}/index.js +0 -0
  18. package/src/components/component-wrapper/missing/component.js +200 -0
  19. package/src/components/component-wrapper/missing/index.js +1 -0
  20. package/src/components/{missing-wrapper → component-wrapper/missing}/missing.scss +32 -32
  21. package/src/components/component-wrapper/wrapper.js +23 -0
  22. package/src/components/components.js +1 -0
  23. package/src/components/datepicker/component.js +26 -11
  24. package/src/components/declarations/component.js +46 -46
  25. package/src/components/declarations/declarations.scss +40 -40
  26. package/src/components/declarations/wrappers/input-declarations-wrapper.js +328 -274
  27. package/src/components/declarations/wrappers/simple-declarations-wrapper.js +54 -54
  28. package/src/components/dropdown/commons/actions.js +65 -56
  29. package/src/components/dropdown/commons/children-to-option.js +9 -9
  30. package/src/components/dropdown/commons/cleaner-callbacks.js +58 -58
  31. package/src/components/dropdown/commons/components/dropdown-container.js +29 -29
  32. package/src/components/dropdown/commons/components/dropdown.js +204 -183
  33. package/src/components/dropdown/commons/event-callbacks/on-mousedown-callback.js +15 -15
  34. package/src/components/dropdown/commons/reducer.js +3 -0
  35. package/src/components/dropdown/commons/tools/index.js +17 -17
  36. package/src/components/dropdown/component.js +135 -135
  37. package/src/components/dropdown/dropdown-edit/dropdown-edit.js +194 -185
  38. package/src/components/dropdown/dropdown-edit/index.js +11 -11
  39. package/src/components/dropdown/dropdown-simple/dropdown.js +173 -164
  40. package/src/components/dropdown/dropdown-simple/index.js +20 -20
  41. package/src/components/dropdown/dropdown.scss +178 -178
  42. package/src/components/icon/icon.scss +15 -15
  43. package/src/components/index.js +2 -0
  44. package/src/components/index.scss +177 -175
  45. package/src/components/input/input-number.js +30 -54
  46. package/src/components/input/input.js +11 -11
  47. package/src/components/input/input.scss +31 -37
  48. package/src/components/loop/component.js +170 -169
  49. package/src/components/loop/loop.scss +13 -13
  50. package/src/components/loop/wrapper.js +1 -1
  51. package/src/components/loop-constructor/block/block.scss +10 -10
  52. package/src/components/loop-constructor/block/component.js +9 -9
  53. package/src/components/loop-constructor/roster/component.js +8 -8
  54. package/src/components/loop-constructor/wrapper/body-component.js +146 -125
  55. package/src/components/modal/component.js +36 -0
  56. package/src/components/modal/index.js +1 -0
  57. package/src/components/modal/modal.scss +33 -0
  58. package/src/components/progress-bar/progress-bar.scss +54 -54
  59. package/src/components/radio/component.js +9 -9
  60. package/src/components/radio/radio.scss +59 -59
  61. package/src/components/sequence/component.js +50 -50
  62. package/src/components/sequence/sequence.scss +10 -10
  63. package/src/components/subsequence/component.js +49 -49
  64. package/src/components/suggester/check-store.js +2 -4
  65. package/src/components/suggester/components/panel/default-option-renderer.js +27 -27
  66. package/src/components/suggester/components/panel/option-container.js +61 -61
  67. package/src/components/suggester/components/panel/panel.js +47 -47
  68. package/src/components/suggester/components/selection/default-label-renderer.js +31 -31
  69. package/src/components/suggester/components/selection/label.js +35 -35
  70. package/src/components/suggester/components/selection/selection.js +50 -50
  71. package/src/components/suggester/components/suggester-content.js +2 -2
  72. package/src/components/suggester/components/suggester.js +128 -88
  73. package/src/components/suggester/components/suggester.scss +101 -101
  74. package/src/components/suggester/default-style.scss +125 -125
  75. package/src/components/suggester/find-best-label/find-best-label.js +51 -49
  76. package/src/components/suggester/find-best-label/index.js +1 -1
  77. package/src/components/suggester/idb-suggester.js +73 -67
  78. package/src/components/suggester/lunatic-suggester.js +140 -137
  79. package/src/components/suggester/searching/create-searching.js +49 -47
  80. package/src/components/suggester/searching/index.js +1 -1
  81. package/src/components/suggester/state-management/actions.js +38 -38
  82. package/src/components/suggester/state-management/reducer/reduce-on-delete-search.js +11 -11
  83. package/src/components/suggester/state-management/reducer/reduce-on-init.js +29 -29
  84. package/src/components/suggester/state-management/reducer/reducer.js +38 -38
  85. package/src/components/suggester/suggester-wrapper.js +127 -121
  86. package/src/components/suggester-loader-widget/loader.js +67 -67
  87. package/src/components/suggester-loader-widget/widget.js +123 -123
  88. package/src/components/table/table.js +173 -171
  89. package/src/components/table/table.scss +26 -26
  90. package/src/components/textarea/component.js +11 -11
  91. package/src/components/textarea/textarea.scss +8 -8
  92. package/src/components/tooltip/tooltip.scss +30 -30
  93. package/src/stories/checkbox-boolean/data.json +78 -78
  94. package/src/stories/datepicker/data.json +3 -1
  95. package/src/stories/dropdown/README.md +44 -44
  96. package/src/stories/dropdown/data.json +98 -98
  97. package/src/stories/dropdown/dropdown.stories.js +89 -89
  98. package/src/stories/progress-bar/progress-bar.stories.js +24 -24
  99. package/src/stories/questionnaire/arithmetic-management.json +47 -0
  100. package/src/stories/questionnaire/arithmetic.json +247 -247
  101. package/src/stories/questionnaire/kish.json +275 -0
  102. package/src/stories/questionnaire/logement-queen.json +23390 -0
  103. package/src/stories/questionnaire/logement-s2.json +46028 -0
  104. package/src/stories/questionnaire/logement.json +20347 -26087
  105. package/src/stories/questionnaire/loop-and-controls.json +481 -0
  106. package/src/stories/questionnaire/questionnaire.stories.js +236 -138
  107. package/src/stories/questionnaire/update-external/data.json +1 -0
  108. package/src/stories/questionnaire/update-external/questionnaire.json +75 -0
  109. package/src/stories/suggester/README.md +46 -46
  110. package/src/stories/suggester/bailleurs-sociaux/fetch-bailleurs.js +15 -15
  111. package/src/stories/suggester/bailleurs-sociaux/index.js +2 -2
  112. package/src/stories/suggester/bailleurs-sociaux/option-bailleur-renderer.js +58 -58
  113. package/src/stories/suggester/bailleurs-sociaux/preloader.svg +51 -51
  114. package/src/stories/suggester/bailleurs-sociaux/theme.scss +22 -22
  115. package/src/stories/suggester/bailleurs-sociaux-2021/fetch-bailleurs.js +12 -0
  116. package/src/stories/suggester/bailleurs-sociaux-2021/index.js +1 -0
  117. package/src/stories/suggester/cog-communes/fetch-cog.js +15 -15
  118. package/src/stories/suggester/data-auto.json +232 -231
  119. package/src/stories/suggester/data-vtl.json +82 -82
  120. package/src/stories/suggester/data.json +169 -136
  121. package/src/stories/suggester/naf-rev2/index.js +2 -2
  122. package/src/stories/suggester/naf-rev2/option-naf-renderer.js +17 -17
  123. package/src/stories/suggester/suggester-workers.stories.js +226 -179
  124. package/src/stories/suggester/suggester.stories.js +138 -133
  125. package/src/stories/utils/orchestrator-split.js +119 -0
  126. package/src/stories/utils/orchestrator.js +119 -108
  127. package/src/tests/components/input-number.spec.js +6 -12
  128. package/src/tests/components/missing-wrapper.spec.js +0 -1
  129. package/src/tests/utils/lib/table/roster.spec.js +25 -25
  130. package/src/tests/utils/to-expose/handler/results/res-input-edited.json +1 -1
  131. package/src/utils/components/dragger/dragger.scss +7 -7
  132. package/src/utils/idb-tools/create-db-opener.js +43 -43
  133. package/src/utils/idb-tools/create-open-db.js +25 -25
  134. package/src/utils/idb-tools/idb-bulk-insert.js +96 -96
  135. package/src/utils/idb-tools/index.js +10 -10
  136. package/src/utils/idb-tools/insert-entity.js +15 -15
  137. package/src/utils/idb-tools/open-db.js +13 -13
  138. package/src/utils/idb-tools/open-or-create-db.js +34 -34
  139. package/src/utils/lib/controls/index.js +1 -0
  140. package/src/utils/lib/controls/utils.js +152 -0
  141. package/src/utils/lib/decorator/title-decorator.js +16 -16
  142. package/src/utils/lib/env.js +2 -2
  143. package/src/utils/lib/index.js +2 -0
  144. package/src/utils/lib/input-number.js +1 -1
  145. package/src/utils/lib/options-positioning.js +9 -9
  146. package/src/utils/lib/pagination/navigation/shared.js +12 -9
  147. package/src/utils/lib/prop-types/lines.js +6 -6
  148. package/src/utils/lib/responses.js +11 -9
  149. package/src/utils/lib/splitting.js +142 -0
  150. package/src/utils/lib/style.js +10 -10
  151. package/src/utils/store-tools/auto-load.js +74 -73
  152. package/src/utils/suggester-workers/append-to-index/append.js +25 -25
  153. package/src/utils/suggester-workers/append-to-index/append.worker.js +16 -16
  154. package/src/utils/suggester-workers/append-to-index/create-append-task.js +45 -43
  155. package/src/utils/suggester-workers/append-to-index/index.js +2 -2
  156. package/src/utils/suggester-workers/append-to-index/prepare-entities.js +61 -61
  157. package/src/utils/suggester-workers/append-to-index/store-messages.js +21 -21
  158. package/src/utils/suggester-workers/commons-tokenizer/create-entity-tokenizer.js +56 -0
  159. package/src/utils/suggester-workers/commons-tokenizer/create-fields-tokenizer.js +56 -0
  160. package/src/utils/suggester-workers/commons-tokenizer/create-filter-stop-words.js +17 -17
  161. package/src/utils/suggester-workers/commons-tokenizer/filters/compose-filters.js +10 -0
  162. package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.js +17 -0
  163. package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.spec.js +14 -0
  164. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-accents.js +12 -0
  165. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-accents.spec.js +12 -0
  166. package/src/utils/suggester-workers/commons-tokenizer/{filter-double.js → filters/filter-double.js} +12 -12
  167. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-double.spec.js +20 -0
  168. package/src/utils/suggester-workers/commons-tokenizer/{filter-length.js → filters/filter-length.js} +7 -7
  169. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-length.spec.js +18 -0
  170. package/src/utils/suggester-workers/commons-tokenizer/{filter-stemmer.js → filters/filter-stemmer.js} +13 -13
  171. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-stemmer.spec.js +12 -0
  172. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.js +36 -0
  173. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.spec.js +12 -0
  174. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.js +10 -0
  175. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.spec.js +12 -0
  176. package/src/utils/suggester-workers/commons-tokenizer/filters/index.js +2 -0
  177. package/src/utils/suggester-workers/commons-tokenizer/{stop-words.js → filters/stop-words.js} +118 -118
  178. package/src/utils/suggester-workers/commons-tokenizer/get-regexp-from-pattern.js +8 -8
  179. package/src/utils/suggester-workers/commons-tokenizer/get-stemmer.js +18 -18
  180. package/src/utils/suggester-workers/commons-tokenizer/index.js +9 -8
  181. package/src/utils/suggester-workers/commons-tokenizer/prepare-string-indexation.js +13 -9
  182. package/src/utils/suggester-workers/commons-tokenizer/soft-tokenizer.js +7 -7
  183. package/src/utils/suggester-workers/create-worker.js +56 -0
  184. package/src/utils/suggester-workers/find-best-label/find-best-label.js +39 -39
  185. package/src/utils/suggester-workers/find-best-label/find-best-label.worker.js +40 -40
  186. package/src/utils/suggester-workers/find-best-label/tokenize.js +30 -33
  187. package/src/utils/suggester-workers/find-best-label/tokenize.spec.js +19 -19
  188. package/src/utils/suggester-workers/searching/compute-score.js +33 -33
  189. package/src/utils/suggester-workers/searching/get-db.js +18 -18
  190. package/src/utils/suggester-workers/searching/index.js +1 -1
  191. package/src/utils/suggester-workers/searching/order/create-alphanumeric-orderer.js +20 -20
  192. package/src/utils/suggester-workers/searching/order/index.js +19 -19
  193. package/src/utils/suggester-workers/{query-parser → searching/query-parser}/index.js +2 -2
  194. package/src/utils/suggester-workers/searching/query-parser/query-parser-soft.js +7 -0
  195. package/src/utils/suggester-workers/{query-parser → searching/query-parser}/query-parser-soft.spec.js +24 -24
  196. package/src/utils/suggester-workers/searching/query-parser/query-parser-tokenized.js +34 -0
  197. package/src/utils/suggester-workers/searching/resolve-query-parser.js +27 -27
  198. package/src/utils/suggester-workers/searching/search-in-index.js +17 -17
  199. package/src/utils/suggester-workers/searching/searching.js +70 -70
  200. package/src/utils/suggester-workers/searching/searching.worker.js +11 -11
  201. package/src/utils/to-expose/calculated-variables.js +113 -113
  202. package/src/utils/to-expose/handler.js +149 -112
  203. package/src/utils/to-expose/hooks/filter-components.js +27 -12
  204. package/src/utils/to-expose/hooks/index.js +2 -1
  205. package/src/utils/to-expose/hooks/lunatic-split.js +428 -0
  206. package/src/utils/to-expose/hooks/lunatic.js +284 -187
  207. package/src/utils/to-expose/index.js +1 -1
  208. package/src/utils/to-expose/init-questionnaire.js +164 -164
  209. package/src/utils/to-expose/interpret/vtl.js +18 -18
  210. package/src/utils/to-expose/state.js +66 -58
  211. package/src/components/missing-wrapper/component.js +0 -120
  212. package/src/components/missing-wrapper/wrapper.js +0 -10
  213. package/src/tests/utils/to-expose/hooks/use-lunatic.spec.js +0 -46
  214. package/src/utils/suggester-workers/commons-tokenizer/create-tokenizer.js +0 -103
  215. package/src/utils/suggester-workers/commons-tokenizer/filter-accents-to-lower.js +0 -9
  216. package/src/utils/suggester-workers/commons-tokenizer/filter-synonyms.js +0 -10
  217. package/src/utils/suggester-workers/query-parser/query-parser-soft.js +0 -7
  218. package/src/utils/suggester-workers/query-parser/query-parser-tokenized.js +0 -31
  219. package/src/utils/suggester-workers/query-parser/query-parser-tokenized.spec.js +0 -32
@@ -1,138 +1,236 @@
1
- import React from 'react';
2
- import { storiesOf } from '@storybook/react';
3
- import Orchestrator from '../utils/orchestrator';
4
- import { titleDecorator } from 'utils/lib';
5
- import calcVar from './calc-var';
6
- import logement from './logement';
7
- import logementSequence from './logement-sequence';
8
- import dataLogement from './data-logement.json';
9
- import simpsons from './simpsons';
10
- import arithmetic from './arithmetic';
11
- import { positioningOptions, featuresOptions } from '../utils/options';
12
- import { boolean, select } from '@storybook/addon-knobs/react';
13
-
14
- const def = storiesOf('Questionnaire/Default', module).addDecorator(
15
- (Component) => {
16
- const WrappedComponent = titleDecorator(Component);
17
- return <WrappedComponent title="<Questionnaire />" />;
18
- }
19
- );
20
-
21
- def.addWithJSX('Calculated Variables', () => (
22
- <Orchestrator
23
- id="props"
24
- source={calcVar}
25
- missing={boolean('Missing', false)}
26
- features={select('Features', featuresOptions, ['VTL', 'MD'])}
27
- positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
28
- disabled={boolean('Disabled', false)}
29
- focused={boolean('Focused', false)}
30
- management={boolean('Management', false)}
31
- />
32
- ));
33
-
34
- def.addWithJSX('Logement', () => (
35
- <Orchestrator
36
- id="props"
37
- source={logement}
38
- missing={boolean('Missing', false)}
39
- features={select('Features', featuresOptions, ['VTL', 'MD'])}
40
- positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
41
- disabled={boolean('Disabled', false)}
42
- focused={boolean('Focused', false)}
43
- management={boolean('Management', false)}
44
- />
45
- ));
46
-
47
- def.addWithJSX('Arithmetic', () => (
48
- <Orchestrator
49
- id="props"
50
- source={arithmetic}
51
- features={select('Features', featuresOptions, ['VTL', 'MD'])}
52
- positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
53
- disabled={boolean('Disabled', false)}
54
- />
55
- ));
56
-
57
- def.addWithJSX('Simpsons', () => (
58
- <Orchestrator
59
- id="props"
60
- source={simpsons}
61
- missing={boolean('Missing', false)}
62
- features={select('Features', featuresOptions, ['VTL', 'MD'])}
63
- positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
64
- disabled={boolean('Disabled', false)}
65
- focused={boolean('Focused', false)}
66
- management={boolean('Management', false)}
67
- />
68
- ));
69
-
70
- const paginated = storiesOf('Questionnaire/Paginated', module).addDecorator(
71
- (Component) => {
72
- const WrappedComponent = titleDecorator(Component);
73
- return <WrappedComponent title="<Questionnaire />" />;
74
- }
75
- );
76
-
77
- paginated.addWithJSX('Calculated Variables', () => (
78
- <Orchestrator
79
- id="props"
80
- source={calcVar}
81
- missing={boolean('Missing', false)}
82
- features={select('Features', featuresOptions, ['VTL', 'MD'])}
83
- positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
84
- disabled={boolean('Disabled', false)}
85
- focused={boolean('Focused', false)}
86
- management={boolean('Management', false)}
87
- pagination
88
- />
89
- ));
90
-
91
- paginated.addWithJSX('Logement', () => (
92
- <Orchestrator
93
- id="props"
94
- source={logement}
95
- data={dataLogement}
96
- missing={boolean('Missing', false)}
97
- activeGoNextForMissing={boolean('Active go next for missing', false)}
98
- features={select('Features', featuresOptions, ['VTL', 'MD'])}
99
- positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
100
- disabled={boolean('Disabled', false)}
101
- focused={boolean('Focused', false)}
102
- management={boolean('Management', false)}
103
- pagination
104
- />
105
- ));
106
-
107
- paginated.addWithJSX('Logement - Sequence', () => (
108
- <Orchestrator
109
- id="props"
110
- source={logementSequence}
111
- data={dataLogement}
112
- missing={boolean('Missing', false)}
113
- activeGoNextForMissing={boolean('Active go next for missing', false)}
114
- features={select('Features', featuresOptions, ['VTL', 'MD'])}
115
- positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
116
- disabled={boolean('Disabled', false)}
117
- focused={boolean('Focused', false)}
118
- management={boolean('Management', false)}
119
- pagination
120
- />
121
- ));
122
-
123
- paginated.addWithJSX('Simpsons', () => (
124
- <Orchestrator
125
- id="props"
126
- source={simpsons}
127
- missing={boolean('Missing', false)}
128
- activeGoNextForMissing={boolean('Active go next for missing', false)}
129
- missingShortcut={{ dontKnow: 'f2', refused: 'f4' }}
130
- shortcut
131
- features={select('Features', featuresOptions, ['VTL', 'MD'])}
132
- positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
133
- disabled={boolean('Disabled', false)}
134
- focused={boolean('Focused', false)}
135
- management={boolean('Management', false)}
136
- pagination
137
- />
138
- ));
1
+ import React, { useState } from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import Orchestrator from '../utils/orchestrator';
4
+ import OrchestratorSplit from '../utils/orchestrator-split';
5
+ import { titleDecorator } from 'utils/lib';
6
+ import calcVar from './calc-var';
7
+ import logement from './logement';
8
+ import logementQueen from './logement-queen';
9
+ import logementS2 from './logement-s2';
10
+ import logementSequence from './logement-sequence';
11
+ import dataLogement from './data-logement';
12
+ import simpsons from './simpsons';
13
+ import loopAndControls from './loop-and-controls.json';
14
+ import arithmetic from './arithmetic';
15
+ import kish from './kish';
16
+ import arithmeticManagement from './arithmetic-management';
17
+ import updateExternalQuestionnaire from './update-external/questionnaire';
18
+ import updateExternalData from './update-external/data';
19
+ import { positioningOptions, featuresOptions } from '../utils/options';
20
+ import { boolean, select } from '@storybook/addon-knobs/react';
21
+
22
+ const def = storiesOf('Questionnaire/Default', module).addDecorator(
23
+ (Component) => {
24
+ const WrappedComponent = titleDecorator(Component);
25
+ return <WrappedComponent title="<Questionnaire />" />;
26
+ }
27
+ );
28
+
29
+ def.addWithJSX('Calculated Variables', () => (
30
+ <Orchestrator
31
+ id="props"
32
+ source={calcVar}
33
+ missing={boolean('Missing', false)}
34
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
35
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
36
+ disabled={boolean('Disabled', false)}
37
+ focused={boolean('Focused', false)}
38
+ management={boolean('Management', false)}
39
+ />
40
+ ));
41
+
42
+ def.addWithJSX('Arithmetic', () => (
43
+ <Orchestrator
44
+ id="props"
45
+ source={arithmetic}
46
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
47
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
48
+ disabled={boolean('Disabled', false)}
49
+ />
50
+ ));
51
+
52
+ def.addWithJSX('Arithmetic - Management', () => (
53
+ <Orchestrator
54
+ id="props"
55
+ source={arithmeticManagement}
56
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
57
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
58
+ disabled={boolean('Disabled', false)}
59
+ management={boolean('Management', true)}
60
+ />
61
+ ));
62
+
63
+ def.addWithJSX('Simpsons', () => (
64
+ <Orchestrator
65
+ id="props"
66
+ source={simpsons}
67
+ missing={boolean('Missing', false)}
68
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
69
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
70
+ disabled={boolean('Disabled', false)}
71
+ focused={boolean('Focused', false)}
72
+ management={boolean('Management', false)}
73
+ />
74
+ ));
75
+
76
+ const paginated = storiesOf('Questionnaire/Paginated', module).addDecorator(
77
+ (Component) => {
78
+ const WrappedComponent = titleDecorator(Component);
79
+ return <WrappedComponent title="<Questionnaire />" />;
80
+ }
81
+ );
82
+
83
+ paginated.addWithJSX('Calculated Variables', () => (
84
+ <Orchestrator
85
+ id="props"
86
+ source={calcVar}
87
+ missing={boolean('Missing', false)}
88
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
89
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
90
+ disabled={boolean('Disabled', false)}
91
+ focused={boolean('Focused', false)}
92
+ management={boolean('Management', false)}
93
+ pagination
94
+ />
95
+ ));
96
+
97
+ paginated.addWithJSX('Kish', () => (
98
+ <Orchestrator
99
+ id="props"
100
+ source={kish}
101
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
102
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
103
+ disabled={boolean('Disabled', false)}
104
+ pagination
105
+ />
106
+ ));
107
+
108
+ paginated.addWithJSX('Logement', () => (
109
+ <OrchestratorSplit
110
+ id="props"
111
+ source={logement}
112
+ data={dataLogement}
113
+ missing={boolean('Missing', false)}
114
+ activeGoNextForMissing={boolean('Active go next for missing', false)}
115
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
116
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
117
+ disabled={boolean('Disabled', false)}
118
+ focused={boolean('Focused', false)}
119
+ management={boolean('Management', false)}
120
+ pagination
121
+ modalForControls
122
+ />
123
+ ));
124
+
125
+ paginated.addWithJSX('Logement - Queen', () => (
126
+ <OrchestratorSplit
127
+ id="props"
128
+ source={logementQueen}
129
+ data={dataLogement}
130
+ missing={boolean('Missing', true)}
131
+ activeGoNextForMissing={boolean('Active go next for missing', false)}
132
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
133
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
134
+ disabled={boolean('Disabled', false)}
135
+ focused={boolean('Focused', false)}
136
+ management={boolean('Management', false)}
137
+ pagination
138
+ />
139
+ ));
140
+
141
+ paginated.addWithJSX('Logement - Sequence', () => (
142
+ <OrchestratorSplit
143
+ id="props"
144
+ source={logementSequence}
145
+ data={dataLogement}
146
+ missing={boolean('Missing', false)}
147
+ activeGoNextForMissing={boolean('Active go next for missing', false)}
148
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
149
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
150
+ disabled={boolean('Disabled', false)}
151
+ focused={boolean('Focused', false)}
152
+ management={boolean('Management', false)}
153
+ pagination
154
+ />
155
+ ));
156
+
157
+ paginated.addWithJSX('Logement - S2', () => (
158
+ <OrchestratorSplit
159
+ id="props"
160
+ source={logementS2}
161
+ missing={boolean('Missing', false)}
162
+ activeGoNextForMissing={boolean('Active go next for missing', false)}
163
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
164
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
165
+ disabled={boolean('Disabled', false)}
166
+ focused={boolean('Focused', false)}
167
+ management={boolean('Management', false)}
168
+ pagination
169
+ />
170
+ ));
171
+
172
+ paginated.addWithJSX('Simpsons', () => (
173
+ <Orchestrator
174
+ id="props"
175
+ source={simpsons}
176
+ missing={boolean('Missing', false)}
177
+ activeGoNextForMissing={boolean('Active go next for missing', false)}
178
+ missingShortcut={{ dontKnow: 'f2', refused: 'f4' }}
179
+ shortcut
180
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
181
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
182
+ disabled={boolean('Disabled', false)}
183
+ focused={boolean('Focused', false)}
184
+ management={boolean('Management', false)}
185
+ pagination
186
+ />
187
+ ));
188
+
189
+ const other = storiesOf('Questionnaire/Other', module).addDecorator(
190
+ (Component) => {
191
+ const WrappedComponent = titleDecorator(Component);
192
+ return <WrappedComponent title="<Questionnaire />" />;
193
+ }
194
+ );
195
+
196
+ other.addWithJSX('Controls', () => (
197
+ <Orchestrator
198
+ id="props"
199
+ modalForControls={true}
200
+ source={loopAndControls}
201
+ missing={boolean('Missing', false)}
202
+ activeGoNextForMissing={boolean('Active go next for missing', false)}
203
+ missingShortcut={{ dontKnow: 'f2', refused: 'f4' }}
204
+ shortcut
205
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
206
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
207
+ disabled={boolean('Disabled', false)}
208
+ focused={boolean('Focused', false)}
209
+ management={boolean('Management', false)}
210
+ pagination
211
+ />
212
+ ));
213
+
214
+ other.addWithJSX('Update external', () => {
215
+ const [addExternal, setAddExternal] = useState(null);
216
+ return (
217
+ <>
218
+ <button
219
+ onClick={() => setAddExternal({ PROMO: true })}
220
+ >{`Fire PROMO --> True`}</button>
221
+ <button
222
+ onClick={() => setAddExternal({ PROMO: false })}
223
+ >{`Fire PROMO --> False`}</button>
224
+ <Orchestrator
225
+ id="props"
226
+ source={updateExternalQuestionnaire}
227
+ data={updateExternalData}
228
+ features={select('Features', featuresOptions, ['VTL', 'MD'])}
229
+ positioning={select('Items positioning', positioningOptions, 'DEFAULT')}
230
+ disabled={boolean('Disabled', false)}
231
+ focused={boolean('Focused', false)}
232
+ addExternal={addExternal}
233
+ />
234
+ </>
235
+ );
236
+ });
@@ -0,0 +1 @@
1
+ { "EXTERNAL": { "PROMO": null } }
@@ -0,0 +1,75 @@
1
+ {
2
+ "components": [
3
+ {
4
+ "id": "seq1",
5
+ "componentType": "Sequence",
6
+ "label": "\"I - Collect number\"",
7
+ "conditionFilter": { "value": "true" }
8
+ },
9
+ {
10
+ "id": "input1",
11
+ "componentType": "InputNumber",
12
+ "label": "Number",
13
+ "conditionFilter": { "value": "true" },
14
+ "response": { "name": "NUM" },
15
+ "bindingDependencies": ["NUM"]
16
+ },
17
+ {
18
+ "id": "seq2",
19
+ "componentType": "Sequence",
20
+ "label": "\"II - Promo rate\"",
21
+ "conditionFilter": {
22
+ "value": "PROMO = true",
23
+ "bindingDependencies": ["PROMO"]
24
+ },
25
+ "bindingDependencies": ["PROMO"]
26
+ },
27
+ {
28
+ "id": "input2",
29
+ "componentType": "InputNumber",
30
+ "label": "Rate",
31
+ "conditionFilter": {
32
+ "value": "PROMO = true",
33
+ "bindingDependencies": ["PROMO"]
34
+ },
35
+ "response": {
36
+ "name": "PROMO_RATE",
37
+ "bindingDependencies": ["PROMO_RATE"]
38
+ },
39
+ "bindingDependencies": ["PROMO", "PROMO_RATE"]
40
+ }
41
+ ],
42
+ "variables": [
43
+ {
44
+ "variableType": "COLLECTED",
45
+ "name": "NUM",
46
+ "componentRef": "input1",
47
+ "values": {
48
+ "PREVIOUS": null,
49
+ "COLLECTED": null,
50
+ "FORCED": null,
51
+ "EDITED": null,
52
+ "INPUTED": null
53
+ }
54
+ },
55
+ {
56
+ "variableType": "COLLECTED",
57
+ "name": "PROMO_RATE",
58
+ "componentRef": "input2",
59
+ "values": {
60
+ "PREVIOUS": null,
61
+ "COLLECTED": null,
62
+ "FORCED": null,
63
+ "EDITED": null,
64
+ "INPUTED": null
65
+ }
66
+ },
67
+ { "variableType": "EXTERNAL", "name": "PROMO", "value": null },
68
+ {
69
+ "variableType": "CALCULATED",
70
+ "name": "DOUBLE_PROMO_RATE",
71
+ "expression": "cast(PROMO_RATE, integer) * 2",
72
+ "bindingDependencies": ["PROMO_RATE"]
73
+ }
74
+ ]
75
+ }
@@ -1,46 +1,46 @@
1
- # Suggester component
2
-
3
- ## Props
4
-
5
- | Props | Type | Default value | Required | Description |
6
- | :--------------: | :----: | :--------------------------------------: | :------: | ---------------------------------------- |
7
- | id | string | - | ✓ | Id of the suggester |
8
- | label | string | "" | | Fieldset label of the suggester |
9
- | preferences \* | array | ["COLLECTED"] | | Preferences to manage suggester response |
10
- | response \* | object | {} | | Response concerned by the component |
11
- | placeholderList | string | "" | | Placeholder of the suggester |
12
- | handleChange | func | - | ✓ | Handler of the suggester |
13
- | disabled | bool | false | | Is the suggester options disabled |
14
- | focused | bool | false | | Is the suggester options focused |
15
- | declarations \* | array | [] | | Declarations of the suggester |
16
- | features | array | [ ] | | Component features for labels |
17
- | bindings | object | [ ] | | Questionnaire bindings |
18
- | management | bool | false | | Management mode of the suggester |
19
- | labelPosition \* | string | "DEFAULT" | | Position of the input label |
20
- | path | string | - | ✓ | Path to data into indexdb |
21
- | style \* | object | { fieldsetStyle: {}, modalityStyle: {} } | | Style of the suggester |
22
-
23
- - `preferences` props has to be an ordered array of `COLLECTED`, `FORCED` or `EDITED`
24
- - `response` props has to be a shape of `{name: string, values: object}`
25
- - `labelPosition` props has to be one of `DEFAULT`, `TOP`, `BOTTOM`, `RIGHT` or `LEFT`
26
- - `declarations` are documented in the `Declarations` component
27
-
28
- ## Styles
29
-
30
- **Suggester** component has for classes XXX.
31
-
32
- ## Json-lunatic store-info
33
-
34
- {
35
- suggester: { [name] : {
36
- name,
37
- fields: [{ name: string, rules: [regexp]|'soft'|undefined, language: string|undefined, stemmer: boolean, min: integer }],
38
- queryParser:
39
- {type: 'soft'}|
40
- {type:'tokenized', params: { language: string, rules: [regexp]|undefined, stemmer: boolean|undefined },
41
- stopWords: [string]|undefined,
42
- order: { type: 'ascending'|'descending', field: string }|undefined,
43
- version: string
44
- }
45
- } , ...
46
- }
1
+ # Suggester component
2
+
3
+ ## Props
4
+
5
+ | Props | Type | Default value | Required | Description |
6
+ | :--------------: | :----: | :--------------------------------------: | :------: | ---------------------------------------- |
7
+ | id | string | - | ✓ | Id of the suggester |
8
+ | label | string | "" | | Fieldset label of the suggester |
9
+ | preferences \* | array | ["COLLECTED"] | | Preferences to manage suggester response |
10
+ | response \* | object | {} | | Response concerned by the component |
11
+ | placeholderList | string | "" | | Placeholder of the suggester |
12
+ | handleChange | func | - | ✓ | Handler of the suggester |
13
+ | disabled | bool | false | | Is the suggester options disabled |
14
+ | focused | bool | false | | Is the suggester options focused |
15
+ | declarations \* | array | [] | | Declarations of the suggester |
16
+ | features | array | [ ] | | Component features for labels |
17
+ | bindings | object | [ ] | | Questionnaire bindings |
18
+ | management | bool | false | | Management mode of the suggester |
19
+ | labelPosition \* | string | "DEFAULT" | | Position of the input label |
20
+ | path | string | - | ✓ | Path to data into indexdb |
21
+ | style \* | object | { fieldsetStyle: {}, modalityStyle: {} } | | Style of the suggester |
22
+
23
+ - `preferences` props has to be an ordered array of `COLLECTED`, `FORCED` or `EDITED`
24
+ - `response` props has to be a shape of `{name: string, values: object}`
25
+ - `labelPosition` props has to be one of `DEFAULT`, `TOP`, `BOTTOM`, `RIGHT` or `LEFT`
26
+ - `declarations` are documented in the `Declarations` component
27
+
28
+ ## Styles
29
+
30
+ **Suggester** component has for classes XXX.
31
+
32
+ ## Json-lunatic store-info
33
+
34
+ {
35
+ suggester: { [name] : {
36
+ name,
37
+ fields: [{ name: string, rules: [regexp]|'soft'|undefined, language: string|undefined, stemmer: boolean, min: integer }],
38
+ queryParser:
39
+ {type: 'soft'}|
40
+ {type:'tokenized', params: { language: string, rules: [regexp]|undefined, stemmer: boolean|undefined },
41
+ stopWords: [string]|undefined,
42
+ order: { type: 'ascending'|'descending', field: string }|undefined,
43
+ version: string
44
+ }
45
+ } , ...
46
+ }
@@ -1,15 +1,15 @@
1
- async function fetchBailleurs(path = '') {
2
- const sbPath =
3
- process.env.NODE_ENV === 'development'
4
- ? `${path}/bailleurs-sociaux.json`
5
- : `/Lunatic/storybook/bailleurs-sociaux.json`;
6
- const response = await fetch(sbPath);
7
- const naf = await response.json();
8
- return naf.map(function (bailleur) {
9
- const { code, libelle1 } = bailleur;
10
-
11
- return { ...bailleur, id: code, label: libelle1, value: code };
12
- });
13
- }
14
-
15
- export default fetchBailleurs;
1
+ async function fetchBailleurs(path = '') {
2
+ const sbPath =
3
+ process.env.NODE_ENV === 'development'
4
+ ? `${path}/bailleurs-sociaux.json`
5
+ : `/Lunatic/storybook/bailleurs-sociaux.json`;
6
+ const response = await fetch(sbPath);
7
+ const naf = await response.json();
8
+ return naf.map(function (bailleur) {
9
+ const { code, libelle1 } = bailleur;
10
+
11
+ return { ...bailleur, id: code, label: libelle1, value: code };
12
+ });
13
+ }
14
+
15
+ export default fetchBailleurs;
@@ -1,2 +1,2 @@
1
- export { default as fetch } from './fetch-bailleurs';
2
- export { default as OptionRenderer } from './option-bailleur-renderer';
1
+ export { default as fetch } from './fetch-bailleurs';
2
+ export { default as OptionRenderer } from './option-bailleur-renderer';