@inseefr/lunatic 0.2.3-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 (230) 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/loop-constructor/wrapper/component.js +190 -190
  56. package/src/components/modal/component.js +36 -0
  57. package/src/components/modal/index.js +1 -0
  58. package/src/components/modal/modal.scss +33 -0
  59. package/src/components/progress-bar/progress-bar.scss +54 -54
  60. package/src/components/radio/component.js +9 -9
  61. package/src/components/radio/radio.scss +59 -59
  62. package/src/components/sequence/component.js +50 -50
  63. package/src/components/sequence/sequence.scss +10 -10
  64. package/src/components/subsequence/component.js +49 -49
  65. package/src/components/suggester/check-store.js +2 -4
  66. package/src/components/suggester/components/panel/default-option-renderer.js +27 -27
  67. package/src/components/suggester/components/panel/option-container.js +61 -61
  68. package/src/components/suggester/components/panel/panel.js +47 -47
  69. package/src/components/suggester/components/selection/default-label-renderer.js +31 -31
  70. package/src/components/suggester/components/selection/label.js +35 -35
  71. package/src/components/suggester/components/selection/selection.js +50 -50
  72. package/src/components/suggester/components/suggester-content.js +2 -2
  73. package/src/components/suggester/components/suggester.js +128 -88
  74. package/src/components/suggester/components/suggester.scss +101 -101
  75. package/src/components/suggester/default-style.scss +125 -125
  76. package/src/components/suggester/find-best-label/find-best-label.js +51 -49
  77. package/src/components/suggester/find-best-label/index.js +1 -1
  78. package/src/components/suggester/idb-suggester.js +73 -67
  79. package/src/components/suggester/lunatic-suggester.js +140 -137
  80. package/src/components/suggester/searching/create-searching.js +49 -47
  81. package/src/components/suggester/searching/index.js +1 -1
  82. package/src/components/suggester/state-management/actions.js +38 -38
  83. package/src/components/suggester/state-management/reducer/reduce-on-delete-search.js +11 -11
  84. package/src/components/suggester/state-management/reducer/reduce-on-init.js +29 -29
  85. package/src/components/suggester/state-management/reducer/reducer.js +38 -38
  86. package/src/components/suggester/suggester-wrapper.js +127 -121
  87. package/src/components/suggester-loader-widget/loader.js +67 -67
  88. package/src/components/suggester-loader-widget/widget.js +123 -123
  89. package/src/components/table/table.js +173 -171
  90. package/src/components/table/table.scss +26 -26
  91. package/src/components/textarea/component.js +11 -11
  92. package/src/components/textarea/textarea.scss +8 -8
  93. package/src/components/tooltip/tooltip.scss +30 -30
  94. package/src/stories/breadcrumb/breadcrumb.stories.js +21 -21
  95. package/src/stories/checkbox-boolean/data.json +78 -78
  96. package/src/stories/datepicker/data.json +3 -1
  97. package/src/stories/declarations/declarations.stories.js +116 -116
  98. package/src/stories/dropdown/README.md +44 -44
  99. package/src/stories/dropdown/data.json +98 -98
  100. package/src/stories/dropdown/dropdown.stories.js +89 -89
  101. package/src/stories/progress-bar/progress-bar.stories.js +24 -24
  102. package/src/stories/questionnaire/arithmetic-management.json +47 -0
  103. package/src/stories/questionnaire/arithmetic.json +247 -247
  104. package/src/stories/questionnaire/calc-var.json +187 -187
  105. package/src/stories/questionnaire/data-logement.json +2691 -2691
  106. package/src/stories/questionnaire/kish.json +275 -0
  107. package/src/stories/questionnaire/logement-queen.json +23390 -0
  108. package/src/stories/questionnaire/logement-s2.json +46028 -44537
  109. package/src/stories/questionnaire/logement-sequence.json +26741 -26741
  110. package/src/stories/questionnaire/logement.json +21073 -26813
  111. package/src/stories/questionnaire/loop-and-controls.json +481 -0
  112. package/src/stories/questionnaire/questionnaire.stories.js +236 -154
  113. package/src/stories/questionnaire/update-external/data.json +1 -0
  114. package/src/stories/questionnaire/update-external/questionnaire.json +75 -0
  115. package/src/stories/sequence/sequence.stories.js +32 -32
  116. package/src/stories/subsequence/subsequence.stories.js +32 -32
  117. package/src/stories/suggester/README.md +46 -46
  118. package/src/stories/suggester/bailleurs-sociaux/fetch-bailleurs.js +15 -15
  119. package/src/stories/suggester/bailleurs-sociaux/index.js +2 -2
  120. package/src/stories/suggester/bailleurs-sociaux/option-bailleur-renderer.js +58 -58
  121. package/src/stories/suggester/bailleurs-sociaux/preloader.svg +51 -51
  122. package/src/stories/suggester/bailleurs-sociaux/theme.scss +22 -22
  123. package/src/stories/suggester/bailleurs-sociaux-2021/fetch-bailleurs.js +12 -0
  124. package/src/stories/suggester/bailleurs-sociaux-2021/index.js +1 -0
  125. package/src/stories/suggester/cog-communes/fetch-cog.js +15 -15
  126. package/src/stories/suggester/data-auto.json +232 -231
  127. package/src/stories/suggester/data-vtl.json +82 -82
  128. package/src/stories/suggester/data.json +169 -136
  129. package/src/stories/suggester/naf-rev2/index.js +2 -2
  130. package/src/stories/suggester/naf-rev2/option-naf-renderer.js +17 -17
  131. package/src/stories/suggester/suggester-workers.stories.js +226 -179
  132. package/src/stories/suggester/suggester.stories.js +138 -133
  133. package/src/stories/utils/orchestrator-split.js +119 -0
  134. package/src/stories/utils/orchestrator.js +119 -108
  135. package/src/tests/components/input-number.spec.js +6 -12
  136. package/src/tests/components/loops/roster-loop.json +71 -71
  137. package/src/tests/components/missing-wrapper.spec.js +0 -1
  138. package/src/tests/utils/lib/table/roster.spec.js +25 -25
  139. package/src/tests/utils/to-expose/handler/results/res-input-edited.json +1 -1
  140. package/src/tests/utils/to-expose/init-questionnaire/questionnaire.json +148 -148
  141. package/src/tests/utils/to-expose/init-questionnaire/result.json +181 -181
  142. package/src/utils/components/dragger/dragger.scss +7 -7
  143. package/src/utils/idb-tools/create-db-opener.js +43 -43
  144. package/src/utils/idb-tools/create-open-db.js +25 -25
  145. package/src/utils/idb-tools/idb-bulk-insert.js +96 -96
  146. package/src/utils/idb-tools/index.js +10 -10
  147. package/src/utils/idb-tools/insert-entity.js +15 -15
  148. package/src/utils/idb-tools/open-db.js +13 -13
  149. package/src/utils/idb-tools/open-or-create-db.js +34 -34
  150. package/src/utils/lib/controls/index.js +1 -0
  151. package/src/utils/lib/controls/utils.js +152 -0
  152. package/src/utils/lib/decorator/title-decorator.js +16 -16
  153. package/src/utils/lib/env.js +2 -2
  154. package/src/utils/lib/index.js +2 -0
  155. package/src/utils/lib/input-number.js +1 -1
  156. package/src/utils/lib/options-positioning.js +9 -9
  157. package/src/utils/lib/pagination/navigation/shared.js +256 -253
  158. package/src/utils/lib/prop-types/lines.js +6 -6
  159. package/src/utils/lib/responses.js +11 -9
  160. package/src/utils/lib/splitting.js +142 -0
  161. package/src/utils/lib/style.js +10 -10
  162. package/src/utils/store-tools/auto-load.js +74 -73
  163. package/src/utils/suggester-workers/append-to-index/append.js +25 -25
  164. package/src/utils/suggester-workers/append-to-index/append.worker.js +16 -16
  165. package/src/utils/suggester-workers/append-to-index/create-append-task.js +45 -43
  166. package/src/utils/suggester-workers/append-to-index/index.js +2 -2
  167. package/src/utils/suggester-workers/append-to-index/prepare-entities.js +61 -61
  168. package/src/utils/suggester-workers/append-to-index/store-messages.js +21 -21
  169. package/src/utils/suggester-workers/commons-tokenizer/create-entity-tokenizer.js +56 -0
  170. package/src/utils/suggester-workers/commons-tokenizer/create-fields-tokenizer.js +56 -0
  171. package/src/utils/suggester-workers/commons-tokenizer/create-filter-stop-words.js +17 -17
  172. package/src/utils/suggester-workers/commons-tokenizer/filters/compose-filters.js +10 -0
  173. package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.js +17 -0
  174. package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.spec.js +14 -0
  175. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-accents.js +12 -0
  176. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-accents.spec.js +12 -0
  177. package/src/utils/suggester-workers/commons-tokenizer/{filter-double.js → filters/filter-double.js} +12 -12
  178. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-double.spec.js +20 -0
  179. package/src/utils/suggester-workers/commons-tokenizer/{filter-length.js → filters/filter-length.js} +7 -7
  180. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-length.spec.js +18 -0
  181. package/src/utils/suggester-workers/commons-tokenizer/{filter-stemmer.js → filters/filter-stemmer.js} +13 -13
  182. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-stemmer.spec.js +12 -0
  183. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.js +36 -0
  184. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.spec.js +12 -0
  185. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.js +10 -0
  186. package/src/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.spec.js +12 -0
  187. package/src/utils/suggester-workers/commons-tokenizer/filters/index.js +2 -0
  188. package/src/utils/suggester-workers/commons-tokenizer/{stop-words.js → filters/stop-words.js} +118 -118
  189. package/src/utils/suggester-workers/commons-tokenizer/get-regexp-from-pattern.js +8 -8
  190. package/src/utils/suggester-workers/commons-tokenizer/get-stemmer.js +18 -18
  191. package/src/utils/suggester-workers/commons-tokenizer/index.js +9 -8
  192. package/src/utils/suggester-workers/commons-tokenizer/prepare-string-indexation.js +13 -9
  193. package/src/utils/suggester-workers/commons-tokenizer/soft-tokenizer.js +7 -7
  194. package/src/utils/suggester-workers/create-worker.js +56 -0
  195. package/src/utils/suggester-workers/find-best-label/find-best-label.js +39 -39
  196. package/src/utils/suggester-workers/find-best-label/find-best-label.worker.js +40 -40
  197. package/src/utils/suggester-workers/find-best-label/tokenize.js +30 -33
  198. package/src/utils/suggester-workers/find-best-label/tokenize.spec.js +19 -19
  199. package/src/utils/suggester-workers/searching/compute-score.js +33 -33
  200. package/src/utils/suggester-workers/searching/get-db.js +18 -18
  201. package/src/utils/suggester-workers/searching/index.js +1 -1
  202. package/src/utils/suggester-workers/searching/order/create-alphanumeric-orderer.js +20 -20
  203. package/src/utils/suggester-workers/searching/order/index.js +19 -19
  204. package/src/utils/suggester-workers/{query-parser → searching/query-parser}/index.js +2 -2
  205. package/src/utils/suggester-workers/searching/query-parser/query-parser-soft.js +7 -0
  206. package/src/utils/suggester-workers/{query-parser → searching/query-parser}/query-parser-soft.spec.js +24 -24
  207. package/src/utils/suggester-workers/searching/query-parser/query-parser-tokenized.js +34 -0
  208. package/src/utils/suggester-workers/searching/resolve-query-parser.js +27 -27
  209. package/src/utils/suggester-workers/searching/search-in-index.js +17 -17
  210. package/src/utils/suggester-workers/searching/searching.js +70 -70
  211. package/src/utils/suggester-workers/searching/searching.worker.js +11 -11
  212. package/src/utils/to-expose/calculated-variables.js +113 -113
  213. package/src/utils/to-expose/handler.js +149 -112
  214. package/src/utils/to-expose/hooks/filter-components.js +27 -12
  215. package/src/utils/to-expose/hooks/index.js +2 -1
  216. package/src/utils/to-expose/hooks/lunatic-split.js +428 -0
  217. package/src/utils/to-expose/hooks/lunatic.js +284 -188
  218. package/src/utils/to-expose/index.js +1 -1
  219. package/src/utils/to-expose/init-questionnaire.js +164 -164
  220. package/src/utils/to-expose/interpret/vtl.js +18 -18
  221. package/src/utils/to-expose/state.js +66 -58
  222. package/src/components/missing-wrapper/component.js +0 -120
  223. package/src/components/missing-wrapper/wrapper.js +0 -10
  224. package/src/tests/utils/to-expose/hooks/use-lunatic.spec.js +0 -46
  225. package/src/utils/suggester-workers/commons-tokenizer/create-tokenizer.js +0 -103
  226. package/src/utils/suggester-workers/commons-tokenizer/filter-accents-to-lower.js +0 -9
  227. package/src/utils/suggester-workers/commons-tokenizer/filter-synonyms.js +0 -10
  228. package/src/utils/suggester-workers/query-parser/query-parser-soft.js +0 -7
  229. package/src/utils/suggester-workers/query-parser/query-parser-tokenized.js +0 -31
  230. package/src/utils/suggester-workers/query-parser/query-parser-tokenized.spec.js +0 -32
@@ -1,54 +1,54 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import Declarations from '../';
4
- import * as U from '../../../utils/lib';
5
- import * as C from '../../../constants';
6
-
7
- const SimpleDeclarationsWrapper = ({
8
- id,
9
- declarations,
10
- features,
11
- bindings,
12
- children,
13
- }) => (
14
- <>
15
- <Declarations
16
- id={id}
17
- type={C.BEFORE_QUESTION_TEXT}
18
- declarations={declarations}
19
- features={features}
20
- bindings={bindings}
21
- />
22
- {children}
23
- <Declarations
24
- id={id}
25
- type={C.AFTER_QUESTION_TEXT}
26
- declarations={declarations}
27
- features={features}
28
- bindings={bindings}
29
- />
30
- <Declarations
31
- id={id}
32
- type={C.DETACHABLE}
33
- declarations={declarations}
34
- features={features}
35
- bindings={bindings}
36
- />
37
- </>
38
- );
39
-
40
- SimpleDeclarationsWrapper.defaultProps = {
41
- declarations: [],
42
- features: [],
43
- bindings: {},
44
- };
45
-
46
- SimpleDeclarationsWrapper.propTypes = {
47
- id: PropTypes.string.isRequired,
48
- declarations: U.declarationsPropTypes,
49
- features: PropTypes.arrayOf(PropTypes.string),
50
- bindings: PropTypes.object,
51
- children: PropTypes.element.isRequired,
52
- };
53
-
54
- export default SimpleDeclarationsWrapper;
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Declarations from '../';
4
+ import * as U from '../../../utils/lib';
5
+ import * as C from '../../../constants';
6
+
7
+ const SimpleDeclarationsWrapper = ({
8
+ id,
9
+ declarations,
10
+ features,
11
+ bindings,
12
+ children,
13
+ }) => (
14
+ <>
15
+ <Declarations
16
+ id={id}
17
+ type={C.BEFORE_QUESTION_TEXT}
18
+ declarations={declarations}
19
+ features={features}
20
+ bindings={bindings}
21
+ />
22
+ {children}
23
+ <Declarations
24
+ id={id}
25
+ type={C.AFTER_QUESTION_TEXT}
26
+ declarations={declarations}
27
+ features={features}
28
+ bindings={bindings}
29
+ />
30
+ <Declarations
31
+ id={id}
32
+ type={C.DETACHABLE}
33
+ declarations={declarations}
34
+ features={features}
35
+ bindings={bindings}
36
+ />
37
+ </>
38
+ );
39
+
40
+ SimpleDeclarationsWrapper.defaultProps = {
41
+ declarations: [],
42
+ features: [],
43
+ bindings: {},
44
+ };
45
+
46
+ SimpleDeclarationsWrapper.propTypes = {
47
+ id: PropTypes.string.isRequired,
48
+ declarations: U.declarationsPropTypes,
49
+ features: PropTypes.arrayOf(PropTypes.string),
50
+ bindings: PropTypes.object,
51
+ children: PropTypes.element.isRequired,
52
+ };
53
+
54
+ export default SimpleDeclarationsWrapper;
@@ -1,56 +1,65 @@
1
- export const SHOW_PANEL = "dropdown/show-panel";
2
- export const showPanel = () => ({ type: SHOW_PANEL });
3
-
4
- export const HIDE_PANEL = "dropdown/hide-panel";
5
- export const hidePanel = () => ({ type: HIDE_PANEL });
6
-
7
- export const SET_ACTIVE_OPTION = "dropdown/set-active-option";
8
- export const setActiveOption = index => ({
9
- type: SET_ACTIVE_OPTION,
10
- payload: { index }
11
- });
12
-
13
- export const SET_OPTIONS = "dropdown/set-options";
14
- export const setOptions = options => ({
15
- type: SET_OPTIONS,
16
- payload: { options }
17
- });
18
-
19
- export const SET_VALUE = "dropdown/set-value";
20
- export const setValue = value => ({ type: SET_VALUE, payload: { value } });
21
-
22
- export const SET_FOCUSED = "dropdown/set-focused";
23
- export const setFocused = focused => ({
24
- type: SET_FOCUSED,
25
- payload: { focused }
26
- });
27
-
28
- export const SET_SELECTED_OPTION = "dropdown/set-selectted-option";
29
- export const setSelectedOption = option => ({
30
- type: SET_SELECTED_OPTION,
31
- payload: { option }
32
- });
33
-
34
- export const RESET_SELECTION = "dropdown/reset-selection";
35
- export const resetSelection = option => ({
36
- type: RESET_SELECTION
37
- });
38
-
39
- /* */
40
- export const ARROW_UP_PRESSED = "dropdown/arrow-up-ressed";
41
- export const arrowUpPressed = () => ({ type: ARROW_UP_PRESSED });
42
-
43
- /* */
44
- export const ARROW_DOWN_PRESSED = "dropdown/arrow-down-pressed";
45
- export const arrowDownPressed = () => ({ type: ARROW_DOWN_PRESSED });
46
-
47
- /* */
48
- export const ENTER_PRESSED = "dropdown/enter-pressed";
49
- export const enterPressed = callback => ({
50
- type: ENTER_PRESSED,
51
- payload: { callback }
52
- });
53
-
54
- /* */
55
- export const SET_PREFIX = "dropdown/set-prefix";
56
- export const setPrefix = prefix => ({ type: SET_PREFIX, payload: { prefix } });
1
+ export const SHOW_PANEL = 'dropdown/show-panel';
2
+ export const showPanel = () => ({ type: SHOW_PANEL });
3
+
4
+ export const HIDE_PANEL = 'dropdown/hide-panel';
5
+ export const hidePanel = () => ({ type: HIDE_PANEL });
6
+
7
+ export const SET_ACTIVE_OPTION = 'dropdown/set-active-option';
8
+ export const setActiveOption = (index) => ({
9
+ type: SET_ACTIVE_OPTION,
10
+ payload: { index },
11
+ });
12
+
13
+ export const SET_OPTIONS = 'dropdown/set-options';
14
+ export const setOptions = (options) => ({
15
+ type: SET_OPTIONS,
16
+ payload: { options },
17
+ });
18
+
19
+ export const SET_VALUE = 'dropdown/set-value';
20
+ export const setValue = (value) => ({ type: SET_VALUE, payload: { value } });
21
+
22
+ export const SET_FOCUSED = 'dropdown/set-focused';
23
+ export const setFocused = (focused) => ({
24
+ type: SET_FOCUSED,
25
+ payload: { focused },
26
+ });
27
+
28
+ export const SET_SELECTED_OPTION = 'dropdown/set-selectted-option';
29
+ export const setSelectedOption = (option) => ({
30
+ type: SET_SELECTED_OPTION,
31
+ payload: { option },
32
+ });
33
+
34
+ export const RESET_SELECTION = 'dropdown/reset-selection';
35
+ export const resetSelection = (option) => ({
36
+ type: RESET_SELECTION,
37
+ });
38
+
39
+ /* */
40
+ export const ARROW_UP_PRESSED = 'dropdown/arrow-up-ressed';
41
+ export const arrowUpPressed = () => ({ type: ARROW_UP_PRESSED });
42
+
43
+ /* */
44
+ export const ARROW_DOWN_PRESSED = 'dropdown/arrow-down-pressed';
45
+ export const arrowDownPressed = () => ({ type: ARROW_DOWN_PRESSED });
46
+
47
+ /* */
48
+ export const ENTER_PRESSED = 'dropdown/enter-pressed';
49
+ export const enterPressed = (callback) => ({
50
+ type: ENTER_PRESSED,
51
+ payload: { callback },
52
+ });
53
+
54
+ /* */
55
+ export const INIT_ACTIVE_INDEX = 'dropdown/init-active-index';
56
+ export const initActiveIndex = () => ({
57
+ type: INIT_ACTIVE_INDEX,
58
+ });
59
+
60
+ /* */
61
+ export const SET_PREFIX = 'dropdown/set-prefix';
62
+ export const setPrefix = (prefix) => ({
63
+ type: SET_PREFIX,
64
+ payload: { prefix },
65
+ });
@@ -1,9 +1,9 @@
1
- export default (children = []) =>
2
- (Array.isArray(children) ? children : [children]).map(child => {
3
- const { value } = child.props;
4
- const label = child.props.children;
5
- if (label === undefined || value === undefined) {
6
- throw new Error("Ooops");
7
- }
8
- return { label, value };
9
- });
1
+ export default (children = []) =>
2
+ (Array.isArray(children) ? children : [children]).map(child => {
3
+ const { value } = child.props;
4
+ const label = child.props.children;
5
+ if (label === undefined || value === undefined) {
6
+ throw new Error("Ooops");
7
+ }
8
+ return { label, value };
9
+ });
@@ -1,58 +1,58 @@
1
- let CLEANER_CALLBACKS = {};
2
-
3
- /**
4
- *
5
- * @param {string} id identifiant de dropdown
6
- * @param {function} hook fonction de rappelle à invoquer
7
- */
8
- export const setCallback = (id, hook) => {
9
- CLEANER_CALLBACKS[id] = hook;
10
- };
11
-
12
- /**
13
- *
14
- * @param {...any} execpt identifiants de dropdownn a ne pas appliquer
15
- */
16
- export const applyAll = (...execpt) => {
17
- Object.entries(CLEANER_CALLBACKS).forEach(([k, todo]) => {
18
- if (execpt.indexOf(k) === -1) {
19
- apply(k);
20
- }
21
- });
22
- };
23
-
24
- /**
25
- * Applique une fonction pour l'identifiant transmis
26
- * @param {string} id
27
- */
28
- export const apply = id => {
29
- if (id in CLEANER_CALLBACKS && typeof CLEANER_CALLBACKS[id] === "function") {
30
- CLEANER_CALLBACKS[id]();
31
- }
32
- };
33
-
34
- /**
35
- *
36
- * @param {string} id
37
- * @param {function} callback
38
- */
39
- export const add = (id, callback) => {
40
- if (typeof callback === "function") {
41
- CLEANER_CALLBACKS[id] = callback;
42
- }
43
- };
44
-
45
- /**
46
- *
47
- */
48
- export const clearAll = () => {
49
- CLEANER_CALLBACKS = [];
50
- };
51
-
52
- /**
53
- *
54
- * @param {string} id
55
- */
56
- export const clear = id => {
57
- delete CLEANER_CALLBACKS[id];
58
- };
1
+ let CLEANER_CALLBACKS = {};
2
+
3
+ /**
4
+ *
5
+ * @param {string} id identifiant de dropdown
6
+ * @param {function} hook fonction de rappelle à invoquer
7
+ */
8
+ export const setCallback = (id, hook) => {
9
+ CLEANER_CALLBACKS[id] = hook;
10
+ };
11
+
12
+ /**
13
+ *
14
+ * @param {...any} execpt identifiants de dropdownn a ne pas appliquer
15
+ */
16
+ export const applyAll = (...execpt) => {
17
+ Object.entries(CLEANER_CALLBACKS).forEach(([k, todo]) => {
18
+ if (execpt.indexOf(k) === -1) {
19
+ apply(k);
20
+ }
21
+ });
22
+ };
23
+
24
+ /**
25
+ * Applique une fonction pour l'identifiant transmis
26
+ * @param {string} id
27
+ */
28
+ export const apply = id => {
29
+ if (id in CLEANER_CALLBACKS && typeof CLEANER_CALLBACKS[id] === "function") {
30
+ CLEANER_CALLBACKS[id]();
31
+ }
32
+ };
33
+
34
+ /**
35
+ *
36
+ * @param {string} id
37
+ * @param {function} callback
38
+ */
39
+ export const add = (id, callback) => {
40
+ if (typeof callback === "function") {
41
+ CLEANER_CALLBACKS[id] = callback;
42
+ }
43
+ };
44
+
45
+ /**
46
+ *
47
+ */
48
+ export const clearAll = () => {
49
+ CLEANER_CALLBACKS = [];
50
+ };
51
+
52
+ /**
53
+ *
54
+ * @param {string} id
55
+ */
56
+ export const clear = id => {
57
+ delete CLEANER_CALLBACKS[id];
58
+ };
@@ -1,29 +1,29 @@
1
- import React from 'react';
2
-
3
- const DropdownContainer = React.forwardRef(function (props, ref) {
4
- const {
5
- children,
6
- className,
7
- id,
8
- onMouseDown,
9
- onKeyDown,
10
- onFocus,
11
- onBlur,
12
- } = props;
13
- return (
14
- <div
15
- className={className}
16
- tabIndex="-1"
17
- id={id}
18
- onMouseDown={onMouseDown}
19
- onKeyDown={onKeyDown}
20
- onFocus={onFocus}
21
- onBlur={onBlur}
22
- ref={ref}
23
- >
24
- {children}
25
- </div>
26
- );
27
- });
28
-
29
- export default DropdownContainer;
1
+ import React from 'react';
2
+
3
+ const DropdownContainer = React.forwardRef(function (props, ref) {
4
+ const {
5
+ children,
6
+ className,
7
+ id,
8
+ onMouseDown,
9
+ onKeyDown,
10
+ onFocus,
11
+ onBlur,
12
+ } = props;
13
+ return (
14
+ <div
15
+ className={className}
16
+ tabIndex="-1"
17
+ id={id}
18
+ onMouseDown={onMouseDown}
19
+ onKeyDown={onKeyDown}
20
+ onFocus={onFocus}
21
+ onBlur={onBlur}
22
+ ref={ref}
23
+ >
24
+ {children}
25
+ </div>
26
+ );
27
+ });
28
+
29
+ export default DropdownContainer;