@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.
- package/LICENSE +21 -21
- package/README.md +25 -23
- package/lib/index.js +1191 -475
- package/lib/index.js.map +1 -1
- package/package.json +174 -172
- package/src/components/breadcrumb/breadcrumb.scss +22 -22
- package/src/components/checkbox/boolean.js +172 -172
- package/src/components/checkbox/checkbox.scss +73 -73
- package/src/components/checkbox/group.js +231 -231
- package/src/components/checkbox/one.js +11 -11
- package/src/components/component-wrapper/controls/component.js +70 -0
- package/src/components/component-wrapper/controls/controls.scss +6 -0
- package/src/components/component-wrapper/controls/index.js +1 -0
- package/src/components/component-wrapper/controls/validators/datepicker.js +44 -0
- package/src/components/component-wrapper/controls/validators/index.js +16 -0
- package/src/components/component-wrapper/controls/validators/input-number.js +23 -0
- package/src/components/{missing-wrapper → component-wrapper}/index.js +0 -0
- package/src/components/component-wrapper/missing/component.js +200 -0
- package/src/components/component-wrapper/missing/index.js +1 -0
- package/src/components/{missing-wrapper → component-wrapper/missing}/missing.scss +32 -32
- package/src/components/component-wrapper/wrapper.js +23 -0
- package/src/components/components.js +1 -0
- package/src/components/datepicker/component.js +26 -11
- package/src/components/declarations/component.js +46 -46
- package/src/components/declarations/declarations.scss +40 -40
- package/src/components/declarations/wrappers/input-declarations-wrapper.js +328 -274
- package/src/components/declarations/wrappers/simple-declarations-wrapper.js +54 -54
- package/src/components/dropdown/commons/actions.js +65 -56
- package/src/components/dropdown/commons/children-to-option.js +9 -9
- package/src/components/dropdown/commons/cleaner-callbacks.js +58 -58
- package/src/components/dropdown/commons/components/dropdown-container.js +29 -29
- package/src/components/dropdown/commons/components/dropdown.js +204 -183
- package/src/components/dropdown/commons/event-callbacks/on-mousedown-callback.js +15 -15
- package/src/components/dropdown/commons/reducer.js +3 -0
- package/src/components/dropdown/commons/tools/index.js +17 -17
- package/src/components/dropdown/component.js +135 -135
- package/src/components/dropdown/dropdown-edit/dropdown-edit.js +194 -185
- package/src/components/dropdown/dropdown-edit/index.js +11 -11
- package/src/components/dropdown/dropdown-simple/dropdown.js +173 -164
- package/src/components/dropdown/dropdown-simple/index.js +20 -20
- package/src/components/dropdown/dropdown.scss +178 -178
- package/src/components/icon/icon.scss +15 -15
- package/src/components/index.js +2 -0
- package/src/components/index.scss +177 -175
- package/src/components/input/input-number.js +30 -54
- package/src/components/input/input.js +11 -11
- package/src/components/input/input.scss +31 -37
- package/src/components/loop/component.js +170 -169
- package/src/components/loop/loop.scss +13 -13
- package/src/components/loop/wrapper.js +1 -1
- package/src/components/loop-constructor/block/block.scss +10 -10
- package/src/components/loop-constructor/block/component.js +9 -9
- package/src/components/loop-constructor/roster/component.js +8 -8
- package/src/components/loop-constructor/wrapper/body-component.js +146 -125
- package/src/components/modal/component.js +36 -0
- package/src/components/modal/index.js +1 -0
- package/src/components/modal/modal.scss +33 -0
- package/src/components/progress-bar/progress-bar.scss +54 -54
- package/src/components/radio/component.js +9 -9
- package/src/components/radio/radio.scss +59 -59
- package/src/components/sequence/component.js +50 -50
- package/src/components/sequence/sequence.scss +10 -10
- package/src/components/subsequence/component.js +49 -49
- package/src/components/suggester/check-store.js +2 -4
- package/src/components/suggester/components/panel/default-option-renderer.js +27 -27
- package/src/components/suggester/components/panel/option-container.js +61 -61
- package/src/components/suggester/components/panel/panel.js +47 -47
- package/src/components/suggester/components/selection/default-label-renderer.js +31 -31
- package/src/components/suggester/components/selection/label.js +35 -35
- package/src/components/suggester/components/selection/selection.js +50 -50
- package/src/components/suggester/components/suggester-content.js +2 -2
- package/src/components/suggester/components/suggester.js +128 -88
- package/src/components/suggester/components/suggester.scss +101 -101
- package/src/components/suggester/default-style.scss +125 -125
- package/src/components/suggester/find-best-label/find-best-label.js +51 -49
- package/src/components/suggester/find-best-label/index.js +1 -1
- package/src/components/suggester/idb-suggester.js +73 -67
- package/src/components/suggester/lunatic-suggester.js +140 -137
- package/src/components/suggester/searching/create-searching.js +49 -47
- package/src/components/suggester/searching/index.js +1 -1
- package/src/components/suggester/state-management/actions.js +38 -38
- package/src/components/suggester/state-management/reducer/reduce-on-delete-search.js +11 -11
- package/src/components/suggester/state-management/reducer/reduce-on-init.js +29 -29
- package/src/components/suggester/state-management/reducer/reducer.js +38 -38
- package/src/components/suggester/suggester-wrapper.js +127 -121
- package/src/components/suggester-loader-widget/loader.js +67 -67
- package/src/components/suggester-loader-widget/widget.js +123 -123
- package/src/components/table/table.js +173 -171
- package/src/components/table/table.scss +26 -26
- package/src/components/textarea/component.js +11 -11
- package/src/components/textarea/textarea.scss +8 -8
- package/src/components/tooltip/tooltip.scss +30 -30
- package/src/stories/checkbox-boolean/data.json +78 -78
- package/src/stories/datepicker/data.json +3 -1
- package/src/stories/dropdown/README.md +44 -44
- package/src/stories/dropdown/data.json +98 -98
- package/src/stories/dropdown/dropdown.stories.js +89 -89
- package/src/stories/progress-bar/progress-bar.stories.js +24 -24
- package/src/stories/questionnaire/arithmetic-management.json +47 -0
- package/src/stories/questionnaire/arithmetic.json +247 -247
- package/src/stories/questionnaire/kish.json +275 -0
- package/src/stories/questionnaire/logement-queen.json +23390 -0
- package/src/stories/questionnaire/logement-s2.json +46028 -0
- package/src/stories/questionnaire/logement.json +20347 -26087
- package/src/stories/questionnaire/loop-and-controls.json +481 -0
- package/src/stories/questionnaire/questionnaire.stories.js +236 -138
- package/src/stories/questionnaire/update-external/data.json +1 -0
- package/src/stories/questionnaire/update-external/questionnaire.json +75 -0
- package/src/stories/suggester/README.md +46 -46
- package/src/stories/suggester/bailleurs-sociaux/fetch-bailleurs.js +15 -15
- package/src/stories/suggester/bailleurs-sociaux/index.js +2 -2
- package/src/stories/suggester/bailleurs-sociaux/option-bailleur-renderer.js +58 -58
- package/src/stories/suggester/bailleurs-sociaux/preloader.svg +51 -51
- package/src/stories/suggester/bailleurs-sociaux/theme.scss +22 -22
- package/src/stories/suggester/bailleurs-sociaux-2021/fetch-bailleurs.js +12 -0
- package/src/stories/suggester/bailleurs-sociaux-2021/index.js +1 -0
- package/src/stories/suggester/cog-communes/fetch-cog.js +15 -15
- package/src/stories/suggester/data-auto.json +232 -231
- package/src/stories/suggester/data-vtl.json +82 -82
- package/src/stories/suggester/data.json +169 -136
- package/src/stories/suggester/naf-rev2/index.js +2 -2
- package/src/stories/suggester/naf-rev2/option-naf-renderer.js +17 -17
- package/src/stories/suggester/suggester-workers.stories.js +226 -179
- package/src/stories/suggester/suggester.stories.js +138 -133
- package/src/stories/utils/orchestrator-split.js +119 -0
- package/src/stories/utils/orchestrator.js +119 -108
- package/src/tests/components/input-number.spec.js +6 -12
- package/src/tests/components/missing-wrapper.spec.js +0 -1
- package/src/tests/utils/lib/table/roster.spec.js +25 -25
- package/src/tests/utils/to-expose/handler/results/res-input-edited.json +1 -1
- package/src/utils/components/dragger/dragger.scss +7 -7
- package/src/utils/idb-tools/create-db-opener.js +43 -43
- package/src/utils/idb-tools/create-open-db.js +25 -25
- package/src/utils/idb-tools/idb-bulk-insert.js +96 -96
- package/src/utils/idb-tools/index.js +10 -10
- package/src/utils/idb-tools/insert-entity.js +15 -15
- package/src/utils/idb-tools/open-db.js +13 -13
- package/src/utils/idb-tools/open-or-create-db.js +34 -34
- package/src/utils/lib/controls/index.js +1 -0
- package/src/utils/lib/controls/utils.js +152 -0
- package/src/utils/lib/decorator/title-decorator.js +16 -16
- package/src/utils/lib/env.js +2 -2
- package/src/utils/lib/index.js +2 -0
- package/src/utils/lib/input-number.js +1 -1
- package/src/utils/lib/options-positioning.js +9 -9
- package/src/utils/lib/pagination/navigation/shared.js +12 -9
- package/src/utils/lib/prop-types/lines.js +6 -6
- package/src/utils/lib/responses.js +11 -9
- package/src/utils/lib/splitting.js +142 -0
- package/src/utils/lib/style.js +10 -10
- package/src/utils/store-tools/auto-load.js +74 -73
- package/src/utils/suggester-workers/append-to-index/append.js +25 -25
- package/src/utils/suggester-workers/append-to-index/append.worker.js +16 -16
- package/src/utils/suggester-workers/append-to-index/create-append-task.js +45 -43
- package/src/utils/suggester-workers/append-to-index/index.js +2 -2
- package/src/utils/suggester-workers/append-to-index/prepare-entities.js +61 -61
- package/src/utils/suggester-workers/append-to-index/store-messages.js +21 -21
- package/src/utils/suggester-workers/commons-tokenizer/create-entity-tokenizer.js +56 -0
- package/src/utils/suggester-workers/commons-tokenizer/create-fields-tokenizer.js +56 -0
- package/src/utils/suggester-workers/commons-tokenizer/create-filter-stop-words.js +17 -17
- package/src/utils/suggester-workers/commons-tokenizer/filters/compose-filters.js +10 -0
- package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.js +17 -0
- package/src/utils/suggester-workers/commons-tokenizer/filters/create-filter-stop-words.spec.js +14 -0
- package/src/utils/suggester-workers/commons-tokenizer/filters/filter-accents.js +12 -0
- package/src/utils/suggester-workers/commons-tokenizer/filters/filter-accents.spec.js +12 -0
- package/src/utils/suggester-workers/commons-tokenizer/{filter-double.js → filters/filter-double.js} +12 -12
- package/src/utils/suggester-workers/commons-tokenizer/filters/filter-double.spec.js +20 -0
- package/src/utils/suggester-workers/commons-tokenizer/{filter-length.js → filters/filter-length.js} +7 -7
- package/src/utils/suggester-workers/commons-tokenizer/filters/filter-length.spec.js +18 -0
- package/src/utils/suggester-workers/commons-tokenizer/{filter-stemmer.js → filters/filter-stemmer.js} +13 -13
- package/src/utils/suggester-workers/commons-tokenizer/filters/filter-stemmer.spec.js +12 -0
- package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.js +36 -0
- package/src/utils/suggester-workers/commons-tokenizer/filters/filter-synonyms.spec.js +12 -0
- package/src/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.js +10 -0
- package/src/utils/suggester-workers/commons-tokenizer/filters/filter-to-lower.spec.js +12 -0
- package/src/utils/suggester-workers/commons-tokenizer/filters/index.js +2 -0
- package/src/utils/suggester-workers/commons-tokenizer/{stop-words.js → filters/stop-words.js} +118 -118
- package/src/utils/suggester-workers/commons-tokenizer/get-regexp-from-pattern.js +8 -8
- package/src/utils/suggester-workers/commons-tokenizer/get-stemmer.js +18 -18
- package/src/utils/suggester-workers/commons-tokenizer/index.js +9 -8
- package/src/utils/suggester-workers/commons-tokenizer/prepare-string-indexation.js +13 -9
- package/src/utils/suggester-workers/commons-tokenizer/soft-tokenizer.js +7 -7
- package/src/utils/suggester-workers/create-worker.js +56 -0
- package/src/utils/suggester-workers/find-best-label/find-best-label.js +39 -39
- package/src/utils/suggester-workers/find-best-label/find-best-label.worker.js +40 -40
- package/src/utils/suggester-workers/find-best-label/tokenize.js +30 -33
- package/src/utils/suggester-workers/find-best-label/tokenize.spec.js +19 -19
- package/src/utils/suggester-workers/searching/compute-score.js +33 -33
- package/src/utils/suggester-workers/searching/get-db.js +18 -18
- package/src/utils/suggester-workers/searching/index.js +1 -1
- package/src/utils/suggester-workers/searching/order/create-alphanumeric-orderer.js +20 -20
- package/src/utils/suggester-workers/searching/order/index.js +19 -19
- package/src/utils/suggester-workers/{query-parser → searching/query-parser}/index.js +2 -2
- package/src/utils/suggester-workers/searching/query-parser/query-parser-soft.js +7 -0
- package/src/utils/suggester-workers/{query-parser → searching/query-parser}/query-parser-soft.spec.js +24 -24
- package/src/utils/suggester-workers/searching/query-parser/query-parser-tokenized.js +34 -0
- package/src/utils/suggester-workers/searching/resolve-query-parser.js +27 -27
- package/src/utils/suggester-workers/searching/search-in-index.js +17 -17
- package/src/utils/suggester-workers/searching/searching.js +70 -70
- package/src/utils/suggester-workers/searching/searching.worker.js +11 -11
- package/src/utils/to-expose/calculated-variables.js +113 -113
- package/src/utils/to-expose/handler.js +149 -112
- package/src/utils/to-expose/hooks/filter-components.js +27 -12
- package/src/utils/to-expose/hooks/index.js +2 -1
- package/src/utils/to-expose/hooks/lunatic-split.js +428 -0
- package/src/utils/to-expose/hooks/lunatic.js +284 -187
- package/src/utils/to-expose/index.js +1 -1
- package/src/utils/to-expose/init-questionnaire.js +164 -164
- package/src/utils/to-expose/interpret/vtl.js +18 -18
- package/src/utils/to-expose/state.js +66 -58
- package/src/components/missing-wrapper/component.js +0 -120
- package/src/components/missing-wrapper/wrapper.js +0 -10
- package/src/tests/utils/to-expose/hooks/use-lunatic.spec.js +0 -46
- package/src/utils/suggester-workers/commons-tokenizer/create-tokenizer.js +0 -103
- package/src/utils/suggester-workers/commons-tokenizer/filter-accents-to-lower.js +0 -9
- package/src/utils/suggester-workers/commons-tokenizer/filter-synonyms.js +0 -10
- package/src/utils/suggester-workers/query-parser/query-parser-soft.js +0 -7
- package/src/utils/suggester-workers/query-parser/query-parser-tokenized.js +0 -31
- 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 =
|
|
2
|
-
export const showPanel = () => ({ type: SHOW_PANEL });
|
|
3
|
-
|
|
4
|
-
export const HIDE_PANEL =
|
|
5
|
-
export const hidePanel = () => ({ type: HIDE_PANEL });
|
|
6
|
-
|
|
7
|
-
export const SET_ACTIVE_OPTION =
|
|
8
|
-
export const setActiveOption = index => ({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
export const SET_OPTIONS =
|
|
14
|
-
export const setOptions = options => ({
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
export const SET_VALUE =
|
|
20
|
-
export const setValue = value => ({ type: SET_VALUE, payload: { value } });
|
|
21
|
-
|
|
22
|
-
export const SET_FOCUSED =
|
|
23
|
-
export const setFocused = focused => ({
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
export const SET_SELECTED_OPTION =
|
|
29
|
-
export const setSelectedOption = option => ({
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
export const RESET_SELECTION =
|
|
35
|
-
export const resetSelection = option => ({
|
|
36
|
-
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
/* */
|
|
40
|
-
export const ARROW_UP_PRESSED =
|
|
41
|
-
export const arrowUpPressed = () => ({ type: ARROW_UP_PRESSED });
|
|
42
|
-
|
|
43
|
-
/* */
|
|
44
|
-
export const ARROW_DOWN_PRESSED =
|
|
45
|
-
export const arrowDownPressed = () => ({ type: ARROW_DOWN_PRESSED });
|
|
46
|
-
|
|
47
|
-
/* */
|
|
48
|
-
export const ENTER_PRESSED =
|
|
49
|
-
export const enterPressed = callback => ({
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
/*
|
|
55
|
-
export const
|
|
56
|
-
export const
|
|
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;
|