@alfalab/core-components-select 17.8.2 → 17.8.3
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/components/arrow/Component.js +1 -1
- package/components/arrow/index.css +6 -4
- package/components/base-checkmark/Component.js +1 -1
- package/components/base-checkmark/index.css +9 -7
- package/components/base-option/Component.js +1 -1
- package/components/base-option/index.css +21 -19
- package/components/base-select/Component.d.ts +8 -14
- package/components/base-select/Component.js +48 -75
- package/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.d.ts +12 -0
- package/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.js +19 -0
- package/components/base-select/components/list-desktop/list-popover-desktop.d.ts +0 -0
- package/components/base-select/components/list-desktop/list-popover-desktop.js +12 -0
- package/components/base-select/components/list-desktop/types/types.d.ts +3 -0
- package/components/base-select/components/list-desktop/types/types.js +2 -0
- package/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.d.ts +16 -0
- package/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.js +23 -0
- package/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.d.ts +28 -0
- package/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.js +22 -0
- package/components/base-select/components/list-mobile/helpers/index.d.ts +2 -0
- package/components/base-select/components/list-mobile/helpers/index.js +11 -0
- package/components/base-select/components/list-mobile/list-bottom-sheet-mobile.d.ts +15 -0
- package/components/base-select/components/list-mobile/list-bottom-sheet-mobile.js +28 -0
- package/components/base-select/components/list-mobile/list-mobile.d.ts +16 -0
- package/components/base-select/components/list-mobile/list-mobile.js +26 -0
- package/components/base-select/components/list-mobile/list-modal-mobile.d.ts +15 -0
- package/components/base-select/components/list-mobile/list-modal-mobile.js +42 -0
- package/components/base-select/components/list-mobile/types/types.d.ts +4 -0
- package/components/base-select/components/list-mobile/types/types.js +2 -0
- package/components/base-select/index.css +16 -14
- package/components/base-select/mobile.css +19 -17
- package/components/base-select/types/component-types.d.ts +50 -0
- package/components/base-select/types/component-types.js +2 -0
- package/components/checkmark/Component.js +1 -1
- package/components/checkmark/index.css +15 -13
- package/components/checkmark-mobile/Component.js +1 -1
- package/components/checkmark-mobile/index.css +9 -7
- package/components/field/Component.js +1 -1
- package/components/field/index.css +15 -13
- package/components/footer/Component.js +1 -1
- package/components/footer/index.css +9 -7
- package/components/optgroup/Component.js +1 -1
- package/components/optgroup/index.css +12 -10
- package/components/option/Component.js +1 -1
- package/components/option/index.css +24 -22
- package/components/options-list/Component.js +1 -1
- package/components/options-list/index.css +16 -14
- package/components/search/Component.js +1 -1
- package/components/search/index.css +5 -3
- package/components/virtual-options-list/Component.js +1 -1
- package/components/virtual-options-list/index.css +21 -19
- package/cssm/components/arrow/index.module.css +3 -1
- package/cssm/components/base-checkmark/index.module.css +3 -1
- package/cssm/components/base-option/index.module.css +6 -4
- package/cssm/components/base-select/Component.d.ts +8 -14
- package/cssm/components/base-select/Component.js +38 -60
- package/cssm/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.d.ts +12 -0
- package/cssm/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.js +19 -0
- package/cssm/components/base-select/components/list-desktop/list-popover-desktop.d.ts +9 -0
- package/cssm/components/base-select/components/list-desktop/list-popover-desktop.js +24 -0
- package/cssm/components/base-select/components/list-desktop/types/types.d.ts +3 -0
- package/cssm/components/base-select/components/list-desktop/types/types.js +2 -0
- package/cssm/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.d.ts +16 -0
- package/cssm/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.js +23 -0
- package/cssm/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.d.ts +28 -0
- package/cssm/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.js +22 -0
- package/cssm/components/base-select/components/list-mobile/helpers/index.d.ts +2 -0
- package/cssm/components/base-select/components/list-mobile/helpers/index.js +11 -0
- package/cssm/components/base-select/components/list-mobile/list-bottom-sheet-mobile.d.ts +15 -0
- package/cssm/components/base-select/components/list-mobile/list-bottom-sheet-mobile.js +29 -0
- package/cssm/components/base-select/components/list-mobile/list-mobile.d.ts +16 -0
- package/cssm/components/base-select/components/list-mobile/list-mobile.js +26 -0
- package/cssm/components/base-select/components/list-mobile/list-modal-mobile.d.ts +15 -0
- package/cssm/components/base-select/components/list-mobile/list-modal-mobile.js +43 -0
- package/cssm/components/base-select/components/list-mobile/types/types.d.ts +4 -0
- package/cssm/components/base-select/components/list-mobile/types/types.js +2 -0
- package/cssm/components/base-select/index.module.css +5 -3
- package/cssm/components/base-select/mobile.module.css +7 -5
- package/cssm/components/base-select/types/component-types.d.ts +50 -0
- package/cssm/components/base-select/types/component-types.js +2 -0
- package/cssm/components/checkmark/index.module.css +5 -3
- package/cssm/components/checkmark-mobile/index.module.css +3 -1
- package/cssm/components/field/index.module.css +3 -1
- package/cssm/components/footer/index.module.css +4 -2
- package/cssm/components/optgroup/index.module.css +6 -4
- package/cssm/components/option/index.module.css +5 -3
- package/cssm/components/options-list/index.module.css +6 -4
- package/cssm/components/search/index.module.css +3 -1
- package/cssm/components/virtual-options-list/index.module.css +6 -4
- package/cssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +5 -3
- package/cssm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +5 -3
- package/esm/components/arrow/Component.js +1 -1
- package/esm/components/arrow/index.css +6 -4
- package/esm/components/base-checkmark/Component.js +1 -1
- package/esm/components/base-checkmark/index.css +9 -7
- package/esm/components/base-option/Component.js +1 -1
- package/esm/components/base-option/index.css +21 -19
- package/esm/components/base-select/Component.d.ts +8 -14
- package/esm/components/base-select/Component.js +39 -66
- package/esm/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.d.ts +12 -0
- package/esm/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.js +15 -0
- package/esm/components/base-select/components/list-desktop/list-popover-desktop.d.ts +0 -0
- package/esm/components/base-select/components/list-desktop/list-popover-desktop.js +4 -0
- package/esm/components/base-select/components/list-desktop/types/types.d.ts +3 -0
- package/esm/components/base-select/components/list-desktop/types/types.js +1 -0
- package/esm/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.d.ts +16 -0
- package/esm/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.js +19 -0
- package/esm/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.d.ts +28 -0
- package/esm/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.js +18 -0
- package/esm/components/base-select/components/list-mobile/helpers/index.d.ts +2 -0
- package/esm/components/base-select/components/list-mobile/helpers/index.js +2 -0
- package/esm/components/base-select/components/list-mobile/list-bottom-sheet-mobile.d.ts +15 -0
- package/esm/components/base-select/components/list-mobile/list-bottom-sheet-mobile.js +20 -0
- package/esm/components/base-select/components/list-mobile/list-mobile.d.ts +16 -0
- package/esm/components/base-select/components/list-mobile/list-mobile.js +18 -0
- package/esm/components/base-select/components/list-mobile/list-modal-mobile.d.ts +15 -0
- package/esm/components/base-select/components/list-mobile/list-modal-mobile.js +32 -0
- package/esm/components/base-select/components/list-mobile/types/types.d.ts +4 -0
- package/esm/components/base-select/components/list-mobile/types/types.js +1 -0
- package/esm/components/base-select/index.css +16 -14
- package/esm/components/base-select/mobile.css +19 -17
- package/esm/components/base-select/types/component-types.d.ts +50 -0
- package/esm/components/base-select/types/component-types.js +1 -0
- package/esm/components/checkmark/Component.js +1 -1
- package/esm/components/checkmark/index.css +15 -13
- package/esm/components/checkmark-mobile/Component.js +1 -1
- package/esm/components/checkmark-mobile/index.css +9 -7
- package/esm/components/field/Component.js +1 -1
- package/esm/components/field/index.css +15 -13
- package/esm/components/footer/Component.js +1 -1
- package/esm/components/footer/index.css +9 -7
- package/esm/components/optgroup/Component.js +1 -1
- package/esm/components/optgroup/index.css +12 -10
- package/esm/components/option/Component.js +1 -1
- package/esm/components/option/index.css +24 -22
- package/esm/components/options-list/Component.js +1 -1
- package/esm/components/options-list/index.css +16 -14
- package/esm/components/search/Component.js +1 -1
- package/esm/components/search/index.css +5 -3
- package/esm/components/virtual-options-list/Component.js +1 -1
- package/esm/components/virtual-options-list/index.css +21 -19
- package/esm/list-popover-desktop-a16c1a9c.d.ts +9 -0
- package/esm/list-popover-desktop-a16c1a9c.js +16 -0
- package/esm/mobile/Component.mobile.js +1 -1
- package/esm/mobile.module-3975aa85.js +4 -0
- package/esm/presets/index.js +1 -1
- package/esm/presets/useSelectWithApply/hook.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +8 -6
- package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +8 -6
- package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
- package/esm/presets/useSelectWithLoading/hook.js +1 -1
- package/esm/presets/useSelectWithLoading/index.css +2 -2
- package/esm/shared/index.js +1 -1
- package/list-popover-desktop-63ceae1a.d.ts +9 -0
- package/list-popover-desktop-63ceae1a.js +24 -0
- package/mobile/Component.mobile.js +1 -1
- package/mobile.module-f44f34a3.js +6 -0
- package/modern/components/arrow/Component.js +1 -1
- package/modern/components/arrow/index.css +6 -4
- package/modern/components/base-checkmark/Component.js +1 -1
- package/modern/components/base-checkmark/index.css +9 -7
- package/modern/components/base-option/Component.js +1 -1
- package/modern/components/base-option/index.css +21 -19
- package/modern/components/base-select/Component.d.ts +8 -14
- package/modern/components/base-select/Component.js +23 -56
- package/modern/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.d.ts +12 -0
- package/modern/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.js +15 -0
- package/modern/components/base-select/components/list-desktop/list-popover-desktop.d.ts +0 -0
- package/modern/components/base-select/components/list-desktop/list-popover-desktop.js +3 -0
- package/modern/components/base-select/components/list-desktop/types/types.d.ts +3 -0
- package/modern/components/base-select/components/list-desktop/types/types.js +1 -0
- package/modern/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.d.ts +16 -0
- package/modern/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.js +19 -0
- package/modern/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.d.ts +28 -0
- package/modern/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.js +18 -0
- package/modern/components/base-select/components/list-mobile/helpers/index.d.ts +2 -0
- package/modern/components/base-select/components/list-mobile/helpers/index.js +2 -0
- package/modern/components/base-select/components/list-mobile/list-bottom-sheet-mobile.d.ts +15 -0
- package/modern/components/base-select/components/list-mobile/list-bottom-sheet-mobile.js +24 -0
- package/modern/components/base-select/components/list-mobile/list-mobile.d.ts +16 -0
- package/modern/components/base-select/components/list-mobile/list-mobile.js +17 -0
- package/modern/components/base-select/components/list-mobile/list-modal-mobile.d.ts +15 -0
- package/modern/components/base-select/components/list-mobile/list-modal-mobile.js +32 -0
- package/modern/components/base-select/components/list-mobile/types/types.d.ts +4 -0
- package/modern/components/base-select/components/list-mobile/types/types.js +1 -0
- package/modern/components/base-select/index.css +16 -14
- package/modern/components/base-select/mobile.css +19 -17
- package/modern/components/base-select/types/component-types.d.ts +50 -0
- package/modern/components/base-select/types/component-types.js +1 -0
- package/modern/components/checkmark/Component.js +1 -1
- package/modern/components/checkmark/index.css +15 -13
- package/modern/components/checkmark-mobile/Component.js +1 -1
- package/modern/components/checkmark-mobile/index.css +9 -7
- package/modern/components/field/Component.js +1 -1
- package/modern/components/field/index.css +15 -13
- package/modern/components/footer/Component.js +1 -1
- package/modern/components/footer/index.css +9 -7
- package/modern/components/optgroup/Component.js +1 -1
- package/modern/components/optgroup/index.css +12 -10
- package/modern/components/option/Component.js +1 -1
- package/modern/components/option/index.css +24 -22
- package/modern/components/options-list/Component.js +1 -1
- package/modern/components/options-list/index.css +16 -14
- package/modern/components/search/Component.js +1 -1
- package/modern/components/search/index.css +5 -3
- package/modern/components/virtual-options-list/Component.js +1 -1
- package/modern/components/virtual-options-list/index.css +21 -19
- package/modern/list-popover-desktop-380bb61b.d.ts +9 -0
- package/modern/list-popover-desktop-380bb61b.js +15 -0
- package/modern/mobile/Component.mobile.js +1 -1
- package/modern/mobile.module-5f7203b5.js +4 -0
- package/modern/presets/index.js +1 -1
- package/modern/presets/useSelectWithApply/hook.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +8 -6
- package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +8 -6
- package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
- package/modern/presets/useSelectWithLoading/hook.js +1 -1
- package/modern/presets/useSelectWithLoading/index.css +2 -2
- package/modern/shared/index.js +1 -1
- package/package.json +6 -4
- package/presets/index.js +1 -1
- package/presets/useSelectWithApply/hook.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +8 -6
- package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/header/index.css +8 -6
- package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
- package/presets/useSelectWithLoading/hook.js +1 -1
- package/presets/useSelectWithLoading/index.css +2 -2
- package/shared/index.js +1 -1
- package/src/components/base-select/Component.tsx +49 -185
- package/src/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.tsx +24 -0
- package/src/components/base-select/components/list-desktop/list-popover-desktop.tsx +47 -0
- package/src/components/base-select/components/list-desktop/types/types.ts +3 -0
- package/src/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.tsx +32 -0
- package/src/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.tsx +30 -0
- package/src/components/base-select/components/list-mobile/helpers/index.ts +2 -0
- package/src/components/base-select/components/list-mobile/list-bottom-sheet-mobile.tsx +84 -0
- package/src/components/base-select/components/list-mobile/list-mobile.tsx +39 -0
- package/src/components/base-select/components/list-mobile/list-modal-mobile.tsx +94 -0
- package/src/components/base-select/components/list-mobile/types/types.ts +4 -0
- package/src/components/base-select/types/component-types.ts +39 -0
- /package/esm/{hook-86063cab.d.ts → hook-74830211.d.ts} +0 -0
- /package/esm/{hook-86063cab.js → hook-74830211.js} +0 -0
- /package/{hook-777449d0.d.ts → hook-b7a5b3a9.d.ts} +0 -0
- /package/{hook-777449d0.js → hook-b7a5b3a9.js} +0 -0
- /package/modern/{hook-1c546c40.d.ts → hook-d5ca0e82.d.ts} +0 -0
- /package/modern/{hook-1c546c40.js → hook-d5ca0e82.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 1qyed */
|
|
2
2
|
:root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
3
3
|
} /* deprecated */ :root {
|
|
4
4
|
--color-light-neutral-300: #e7e8eb;
|
|
@@ -14,10 +14,12 @@
|
|
|
14
14
|
|
|
15
15
|
/* Hard up */
|
|
16
16
|
} :root {
|
|
17
|
-
} :root {
|
|
18
|
-
--gap-s: 12px;
|
|
19
|
-
--gap-m: 16px;
|
|
20
|
-
--gap-xl: 24px;
|
|
17
|
+
} :root { /* deprecated */ /* deprecated */ /* deprecated */
|
|
18
|
+
--gap-s: 12px; /* deprecated */ /* deprecated */
|
|
19
|
+
--gap-m: 16px; /* deprecated */ /* deprecated */
|
|
20
|
+
--gap-xl: 24px; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
21
|
+
|
|
22
|
+
/* новые значения, используйте их */
|
|
21
23
|
} :root {
|
|
22
24
|
} :root {
|
|
23
25
|
} :root {
|
|
@@ -35,35 +37,35 @@
|
|
|
35
37
|
/* checkmark */
|
|
36
38
|
|
|
37
39
|
/* optgroup */
|
|
38
|
-
} .
|
|
40
|
+
} .select__virtualOptionsList_1122m {
|
|
39
41
|
width: 100%;
|
|
40
42
|
outline: none;
|
|
41
43
|
box-sizing: border-box;
|
|
42
44
|
position: sticky;
|
|
43
45
|
justify-content: space-between;
|
|
44
|
-
} .
|
|
46
|
+
} .select__virtualOptionsListHeader_1122m {
|
|
45
47
|
box-sizing: border-box;
|
|
46
48
|
border-bottom: 1px solid var(--color-light-neutral-300);
|
|
47
|
-
} .
|
|
49
|
+
} .select__virtualOptionsListFooter_1122m {
|
|
48
50
|
position: sticky;
|
|
49
51
|
bottom: 0;
|
|
50
52
|
box-sizing: border-box;
|
|
51
53
|
border-top: 1px solid transparent
|
|
52
|
-
} .
|
|
54
|
+
} .select__virtualOptionsListFooter_1122m.select__withBorder_1122m {
|
|
53
55
|
border-top: 1px solid var(--color-light-neutral-300);
|
|
54
|
-
} .
|
|
56
|
+
} .select__scrollable_1122m {
|
|
55
57
|
position: relative;
|
|
56
58
|
overflow: auto;
|
|
57
59
|
width: 100%;
|
|
58
|
-
} .
|
|
60
|
+
} .select__inner_1122m {
|
|
59
61
|
position: relative;
|
|
60
62
|
width: 100%;
|
|
61
|
-
} .
|
|
63
|
+
} .select__virtualRow_1122m {
|
|
62
64
|
position: absolute;
|
|
63
65
|
top: 0;
|
|
64
66
|
left: 0;
|
|
65
67
|
width: 100%
|
|
66
|
-
} .
|
|
68
|
+
} .select__virtualRow_1122m:before {
|
|
67
69
|
content: '';
|
|
68
70
|
position: absolute;
|
|
69
71
|
z-index: 1;
|
|
@@ -73,16 +75,16 @@
|
|
|
73
75
|
height: 1px;
|
|
74
76
|
background: var(--select-option-divider-background);
|
|
75
77
|
display: var(--select-option-divider-display);
|
|
76
|
-
} .
|
|
78
|
+
} .select__virtualRow_1122m:first-child:before {
|
|
77
79
|
display: none;
|
|
78
|
-
} .
|
|
79
|
-
.
|
|
80
|
+
} .select__highlighted_1122m:before,
|
|
81
|
+
.select__highlighted_1122m + .select__virtualRow_1122m:before {
|
|
80
82
|
display: none;
|
|
81
|
-
} .
|
|
83
|
+
} .select__emptyPlaceholder_1122m {
|
|
82
84
|
padding: var(--gap-m) var(--gap-s);
|
|
83
85
|
color: var(--select-options-list-empty-placeholder-color);
|
|
84
86
|
flex: 1;
|
|
85
|
-
} .select__size-
|
|
86
|
-
.select__size-
|
|
87
|
+
} .select__size-64_1122m .select__emptyPlaceholder_1122m,
|
|
88
|
+
.select__size-72_1122m .select__emptyPlaceholder_1122m {
|
|
87
89
|
padding: var(--gap-xl) var(--gap-m);
|
|
88
90
|
}
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
/* Hard up */
|
|
13
13
|
} :root {
|
|
14
|
-
} :root {
|
|
14
|
+
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
15
|
+
|
|
16
|
+
/* новые значения, используйте их */
|
|
15
17
|
} :root {
|
|
16
18
|
} :root {
|
|
17
19
|
--arrow-transform: rotate(180deg);
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
/* Hard up */
|
|
12
12
|
} :root {
|
|
13
|
-
} :root {
|
|
13
|
+
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
14
|
+
|
|
15
|
+
/* новые значения, используйте их */
|
|
14
16
|
} :root {
|
|
15
17
|
} :root {
|
|
16
18
|
} :root {
|
|
@@ -15,10 +15,12 @@
|
|
|
15
15
|
|
|
16
16
|
/* Hard up */
|
|
17
17
|
} :root {
|
|
18
|
-
} :root {
|
|
19
|
-
--gap-s: 12px;
|
|
20
|
-
--gap-m: 16px;
|
|
21
|
-
--gap-l: 20px;
|
|
18
|
+
} :root { /* deprecated */ /* deprecated */ /* deprecated */
|
|
19
|
+
--gap-s: 12px; /* deprecated */ /* deprecated */
|
|
20
|
+
--gap-m: 16px; /* deprecated */
|
|
21
|
+
--gap-l: 20px; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
22
|
+
|
|
23
|
+
/* новые значения, используйте их */
|
|
22
24
|
} :root {
|
|
23
25
|
} :root {
|
|
24
26
|
--disabled-cursor: not-allowed;
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import
|
|
4
|
-
import { BottomSheetProps } from "@alfalab/core-components-bottom-sheet";
|
|
5
|
-
import { ModalMobileProps } from "@alfalab/core-components-modal/mobile";
|
|
6
|
-
import { ModalContentProps, ModalFooterProps, ModalHeaderProps } from "@alfalab/core-components-modal/shared";
|
|
7
|
-
import { PopoverProps } from "@alfalab/core-components-popover";
|
|
8
|
-
import { AdditionalMobileProps, BaseSelectProps, BottomSheetSelectMobileProps, ModalSelectMobileProps } from "../../typings";
|
|
9
|
-
declare const BaseSelect: React.ForwardRefExoticComponent<BaseSelectProps & AdditionalMobileProps & BottomSheetSelectMobileProps & ModalSelectMobileProps & {
|
|
3
|
+
declare const BaseSelect: React.ForwardRefExoticComponent<import("../../typings").BaseSelectProps & import("../../typings").AdditionalMobileProps & import("../../typings").BottomSheetSelectMobileProps & import("../../typings").ModalSelectMobileProps & {
|
|
10
4
|
isBottomSheet?: boolean | undefined;
|
|
11
|
-
view:
|
|
12
|
-
Popover?: React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLDivElement>> | undefined;
|
|
13
|
-
BottomSheet?: React.ForwardRefExoticComponent<BottomSheetProps & React.RefAttributes<HTMLDivElement>> | undefined;
|
|
14
|
-
ModalMobile?: (React.ForwardRefExoticComponent<ModalMobileProps & React.RefAttributes<HTMLDivElement>> & {
|
|
15
|
-
Header: FC<ModalHeaderProps>;
|
|
16
|
-
Footer: FC<ModalFooterProps>;
|
|
17
|
-
Content: FC<
|
|
5
|
+
view: "mobile" | "desktop";
|
|
6
|
+
Popover?: React.ForwardRefExoticComponent<import("@alfalab/core-components-popover").PopoverProps & React.RefAttributes<HTMLDivElement>> | undefined;
|
|
7
|
+
BottomSheet?: React.ForwardRefExoticComponent<import("@alfalab/core-components-bottom-sheet").BottomSheetProps & React.RefAttributes<HTMLDivElement>> | undefined;
|
|
8
|
+
ModalMobile?: (React.ForwardRefExoticComponent<import("./types/component-types").ModalMobileProps & React.RefAttributes<HTMLDivElement>> & {
|
|
9
|
+
Header: React.FC<import("@alfalab/core-components-modal/shared").ModalHeaderProps>;
|
|
10
|
+
Footer: React.FC<import("@alfalab/core-components-modal/shared").ModalFooterProps>;
|
|
11
|
+
Content: React.FC<import("./types/component-types").ContentProps>;
|
|
18
12
|
}) | undefined;
|
|
19
13
|
} & React.RefAttributes<unknown>>;
|
|
20
14
|
export { BaseSelect };
|
|
@@ -13,6 +13,11 @@ var coreComponentsShared = require('@alfalab/core-components-shared/cssm');
|
|
|
13
13
|
var hooks = require('@alfalab/hooks');
|
|
14
14
|
var utils = require('../../utils.js');
|
|
15
15
|
var components_nativeSelect_Component = require('../native-select/Component.js');
|
|
16
|
+
var components_baseSelect_components_listDesktop_helpers_getListPopoverDesktopProps = require('./components/list-desktop/helpers/get-list-popover-desktop-props.js');
|
|
17
|
+
var components_baseSelect_components_listDesktop_listPopoverDesktop = require('./components/list-desktop/list-popover-desktop.js');
|
|
18
|
+
var components_baseSelect_components_listMobile_helpers_getListModalMobileProps = require('./components/list-mobile/helpers/get-list-modal-mobile-props.js');
|
|
19
|
+
var components_baseSelect_components_listMobile_helpers_getListBottomSheetMobileProps = require('./components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.js');
|
|
20
|
+
var components_baseSelect_components_listMobile_listMobile = require('./components/list-mobile/list-mobile.js');
|
|
16
21
|
var styles = require('./index.module.css');
|
|
17
22
|
var mobileStyles = require('./mobile.module.css');
|
|
18
23
|
|
|
@@ -29,10 +34,11 @@ var isItemDisabled = function (option) { return Boolean(option === null || optio
|
|
|
29
34
|
var BaseSelect = React.forwardRef(
|
|
30
35
|
// TODO: 😭
|
|
31
36
|
// eslint-disable-next-line complexity
|
|
32
|
-
function (
|
|
33
|
-
var
|
|
34
|
-
var
|
|
35
|
-
var dataTestId =
|
|
37
|
+
function (props, ref) {
|
|
38
|
+
var _a;
|
|
39
|
+
var _b, _c;
|
|
40
|
+
var dataTestId = props.dataTestId, className = props.className, fieldClassName = props.fieldClassName, optionGroupClassName = props.optionGroupClassName, optionsListClassName = props.optionsListClassName, optionClassName = props.optionClassName, options = props.options, _d = props.autocomplete, autocomplete = _d === void 0 ? false : _d, _e = props.multiple, multiple = _e === void 0 ? false : _e, _f = props.allowUnselect, allowUnselect = _f === void 0 ? false : _f, _g = props.disabled, disabled = _g === void 0 ? false : _g, _h = props.closeOnSelect, closeOnSelect = _h === void 0 ? !multiple : _h, _j = props.circularNavigation, circularNavigation = _j === void 0 ? false : _j, _k = props.nativeSelect, nativeSelect = _k === void 0 ? false : _k, _l = props.defaultOpen, defaultOpen = _l === void 0 ? false : _l, openProp = props.open, _m = props.optionsListWidth, optionsListWidth = _m === void 0 ? 'content' : _m, name = props.name, id = props.id, selected = props.selected, _o = props.size, size = _o === void 0 ? 48 : _o, _p = props.optionsSize, optionsSize = _p === void 0 ? size : _p, error = props.error, hint = props.hint, block = props.block, label = props.label, labelView = props.labelView, placeholder = props.placeholder, _q = props.fieldProps, fieldProps = _q === void 0 ? {} : _q, _r = props.optionsListProps, optionsListProps = _r === void 0 ? {} : _r, _s = props.optionProps, optionProps = _s === void 0 ? {} : _s, _t = props.searchProps, searchProps = _t === void 0 ? {} : _t, _u = props.showSearch, showSearch = _u === void 0 ? false : _u, valueRenderer = props.valueRenderer, onChange = props.onChange, onOpen = props.onOpen, onFocus = props.onFocus, onBlur = props.onBlur, onScroll = props.onScroll, Arrow = props.Arrow, _v = props.Field, Field = _v === void 0 ? function () { return null; } : _v, _w = props.OptionsList, OptionsList = _w === void 0 ? function () { return null; } : _w, _x = props.Optgroup, Optgroup = _x === void 0 ? function () { return null; } : _x, _y = props.Option, Option = _y === void 0 ? function () { return null; } : _y, _z = props.Search, Search = _z === void 0 ? function () { return null; } : _z, _0 = props.showEmptyOptionsList, showEmptyOptionsList = _0 === void 0 ? false : _0, visibleOptions = props.visibleOptions, view = props.view, _1 = props.isBottomSheet, isBottomSheet = _1 === void 0 ? true : _1, modalProps = props.modalProps, bottomSheetProps = props.bottomSheetProps, limitDynamicOptionGroupSize = props.limitDynamicOptionGroupSize;
|
|
41
|
+
var shouldSearchBlurRef = React.useRef(true);
|
|
36
42
|
var rootRef = React.useRef(null);
|
|
37
43
|
var fieldRef = React.useRef(null);
|
|
38
44
|
var listRef = React.useRef(null);
|
|
@@ -40,15 +46,15 @@ function (_a, ref) {
|
|
|
40
46
|
var searchRef = React.useRef(null);
|
|
41
47
|
var scrollableContainerRef = React.useRef(null);
|
|
42
48
|
var onOpenRef = React.useRef(onOpen);
|
|
43
|
-
var
|
|
44
|
-
var
|
|
49
|
+
var _2 = React__default.default.useState(''), searchState = _2[0], setSearchState = _2[1];
|
|
50
|
+
var _3 = typeof (searchProps === null || searchProps === void 0 ? void 0 : searchProps.value) === 'string'
|
|
45
51
|
? [searchProps.value, searchProps.onChange]
|
|
46
|
-
: [searchState, setSearchState], search =
|
|
52
|
+
: [searchState, setSearchState], search = _3[0], setSearch = _3[1];
|
|
47
53
|
var accessor = searchProps.accessor || utils.defaultAccessor;
|
|
48
54
|
var filterFn = searchProps.filterFn || utils.defaultFilterFn;
|
|
49
|
-
var filterGroup = (
|
|
50
|
-
var groupAccessor = (
|
|
51
|
-
var
|
|
55
|
+
var filterGroup = (_b = searchProps.filterGroup) !== null && _b !== void 0 ? _b : false;
|
|
56
|
+
var groupAccessor = (_c = searchProps.groupAccessor) !== null && _c !== void 0 ? _c : utils.defaultGroupAccessor;
|
|
57
|
+
var _4 = React.useMemo(function () {
|
|
52
58
|
return utils.processOptions(options, selected, function (option) {
|
|
53
59
|
if (utils.isGroup(option)) {
|
|
54
60
|
var groupAccessorValue = groupAccessor(option);
|
|
@@ -57,7 +63,7 @@ function (_a, ref) {
|
|
|
57
63
|
}
|
|
58
64
|
return filterFn(accessor(option), search);
|
|
59
65
|
}, filterGroup);
|
|
60
|
-
}, [options, selected, filterFn, accessor, search, filterGroup, groupAccessor]), filteredOptions =
|
|
66
|
+
}, [options, selected, filterFn, accessor, search, filterGroup, groupAccessor]), filteredOptions = _4.filteredOptions, flatOptions = _4.flatOptions, selectedOptions = _4.selectedOptions;
|
|
61
67
|
var scrollIntoView = function (node) {
|
|
62
68
|
if (!node || view === 'mobile')
|
|
63
69
|
return;
|
|
@@ -100,8 +106,8 @@ function (_a, ref) {
|
|
|
100
106
|
useMultipleSelectionProps.selectedItems = selectedOptions;
|
|
101
107
|
}
|
|
102
108
|
onOpenRef.current = onOpen;
|
|
103
|
-
var
|
|
104
|
-
var
|
|
109
|
+
var _5 = downshift.useMultipleSelection(useMultipleSelectionProps), selectedItems = _5.selectedItems, addSelectedItem = _5.addSelectedItem, setSelectedItems = _5.setSelectedItems, removeSelectedItem = _5.removeSelectedItem, getDropdownProps = _5.getDropdownProps;
|
|
110
|
+
var _6 = downshift.useCombobox({
|
|
105
111
|
id: id,
|
|
106
112
|
isOpen: openProp,
|
|
107
113
|
items: flatOptions,
|
|
@@ -182,7 +188,7 @@ function (_a, ref) {
|
|
|
182
188
|
return changes;
|
|
183
189
|
}
|
|
184
190
|
},
|
|
185
|
-
}), open =
|
|
191
|
+
}), open = _6.isOpen, getMenuProps = _6.getMenuProps, getInputProps = _6.getInputProps, getItemProps = _6.getItemProps, getLabelProps = _6.getLabelProps, highlightedIndex = _6.highlightedIndex, toggleMenu = _6.toggleMenu, openMenu = _6.openMenu, closeMenu = _6.closeMenu, setHighlightedIndex = _6.setHighlightedIndex;
|
|
186
192
|
React.useEffect(function () {
|
|
187
193
|
/*
|
|
188
194
|
* При изменении openProp, состояние внутри downshift в useEnhancedReducer не меняется, поэтому меняем его таким способом
|
|
@@ -198,7 +204,7 @@ function (_a, ref) {
|
|
|
198
204
|
}
|
|
199
205
|
}, [openProp, openMenu, closeMenu]);
|
|
200
206
|
var inputProps = getInputProps(getDropdownProps({ ref: mergeRefs__default.default([ref, fieldRef]) }));
|
|
201
|
-
var
|
|
207
|
+
var _7 = getMenuProps({ ref: listRef }, { suppressRefError: true }), menuRef = _7.ref, menuProps = tslib.__rest(_7, ["ref"]);
|
|
202
208
|
var handleEntered = function (node, isAppearing) {
|
|
203
209
|
var _a, _b, _c, _d, _e;
|
|
204
210
|
if (showSearch)
|
|
@@ -276,6 +282,15 @@ function (_a, ref) {
|
|
|
276
282
|
index: index,
|
|
277
283
|
item: option,
|
|
278
284
|
onMouseDown: function (event) { return event.preventDefault(); },
|
|
285
|
+
onClick: function () {
|
|
286
|
+
var _a, _b;
|
|
287
|
+
if (view === 'mobile' || !showSearch || multiple)
|
|
288
|
+
return;
|
|
289
|
+
shouldSearchBlurRef.current = false;
|
|
290
|
+
(_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.blur();
|
|
291
|
+
shouldSearchBlurRef.current = true;
|
|
292
|
+
(_b = fieldRef.current) === null || _b === void 0 ? void 0 : _b.focus();
|
|
293
|
+
},
|
|
279
294
|
}), multiple: multiple, index: index, option: option, size: optionsSize, disabled: option.disabled, highlighted: index === highlightedIndex, selected: selectedItems.some(function (_a) {
|
|
280
295
|
var key = _a.key;
|
|
281
296
|
return key === option.key;
|
|
@@ -346,6 +361,8 @@ function (_a, ref) {
|
|
|
346
361
|
};
|
|
347
362
|
var handleBlur = function (event) {
|
|
348
363
|
var _a, _b;
|
|
364
|
+
if (!shouldSearchBlurRef.current)
|
|
365
|
+
return;
|
|
349
366
|
(_b = (_a = searchProps.componentProps) === null || _a === void 0 ? void 0 : _a.onBlur) === null || _b === void 0 ? void 0 : _b.call(_a, event);
|
|
350
367
|
handleFieldBlur(event);
|
|
351
368
|
};
|
|
@@ -354,7 +371,7 @@ function (_a, ref) {
|
|
|
354
371
|
_a[mobileStyles__default.default.search] = view === 'mobile',
|
|
355
372
|
_a)), ref: mergeRefs__default.default([searchRef, ((_c = searchProps === null || searchProps === void 0 ? void 0 : searchProps.componentProps) === null || _c === void 0 ? void 0 : _c.ref) || null]) })));
|
|
356
373
|
};
|
|
357
|
-
var
|
|
374
|
+
var _8 = optionsListProps, header = _8.header, emptyPlaceholder = _8.emptyPlaceholder;
|
|
358
375
|
var renderOptionsListHeader = function () {
|
|
359
376
|
if (header || (view === 'desktop' && showSearch)) {
|
|
360
377
|
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
@@ -383,47 +400,7 @@ function (_a, ref) {
|
|
|
383
400
|
_c)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search, multiple: multiple, limitDynamicOptionGroupSize: limitDynamicOptionGroupSize })),
|
|
384
401
|
view === 'desktop' && React__default.default.createElement("div", { className: styles__default.default.optionsListBorder })));
|
|
385
402
|
};
|
|
386
|
-
|
|
387
|
-
if (!nativeSelect && Popover) {
|
|
388
|
-
return (React__default.default.createElement(Popover, tslib.__assign({}, popoverProps, { open: open, withTransition: false, anchorElement: fieldRef.current, position: popoverPosition, preventFlip: preventFlip, popperClassName: cn__default.default(styles__default.default.popoverInner, popperClassName), update: updatePopover, zIndex: zIndexPopover }), renderOptionsList()));
|
|
389
|
-
}
|
|
390
|
-
return null;
|
|
391
|
-
};
|
|
392
|
-
var renderInBottomSheet = function () {
|
|
393
|
-
if (!nativeSelect && BottomSheet) {
|
|
394
|
-
return (React__default.default.createElement(BottomSheet, tslib.__assign({ dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'bottom-sheet'), open: open, className: mobileStyles__default.default.sheet, contentClassName: mobileStyles__default.default.sheetContent, containerClassName: mobileStyles__default.default.sheetContainer, title: label || placeholder, actionButton: footer, stickyHeader: true, hasCloser: true, swipeable: swipeable, initialHeight: showSearch ? 'full' : 'default' }, bottomSheetProps, { sheetContainerRef: menuRef, scrollableContainerRef: scrollableContainerRef, onClose: function () {
|
|
395
|
-
var _a;
|
|
396
|
-
closeMenu();
|
|
397
|
-
(_a = bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 : bottomSheetProps.onClose) === null || _a === void 0 ? void 0 : _a.call(bottomSheetProps);
|
|
398
|
-
}, transitionProps: tslib.__assign(tslib.__assign({}, bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 : bottomSheetProps.transitionProps), { onEntered: handleEntered }), bottomAddons: React__default.default.createElement(React__default.default.Fragment, null,
|
|
399
|
-
renderSearch(),
|
|
400
|
-
flatOptions.length > 0 && (bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 : bottomSheetProps.bottomAddons)), containerProps: tslib.__assign(tslib.__assign({}, bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 : bottomSheetProps.containerProps), { onScroll: onScroll }) }), renderOptionsList()));
|
|
401
|
-
}
|
|
402
|
-
return null;
|
|
403
|
-
};
|
|
404
|
-
var renderInModalMobile = function () {
|
|
405
|
-
if (!nativeSelect && ModalMobile) {
|
|
406
|
-
return (React__default.default.createElement(ModalMobile, tslib.__assign({ dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'modal'), open: open, hasCloser: true }, modalProps, { componentRef: menuRef, onClose: function () {
|
|
407
|
-
var _a;
|
|
408
|
-
var args = [];
|
|
409
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
410
|
-
args[_i] = arguments[_i];
|
|
411
|
-
}
|
|
412
|
-
closeMenu();
|
|
413
|
-
(_a = modalProps === null || modalProps === void 0 ? void 0 : modalProps.onClose) === null || _a === void 0 ? void 0 : _a.call.apply(_a, tslib.__spreadArray([modalProps], args, false));
|
|
414
|
-
}, contentClassName: cn__default.default(mobileStyles__default.default.sheetContent, modalProps === null || modalProps === void 0 ? void 0 : modalProps.contentClassName), ref: mergeRefs__default.default([
|
|
415
|
-
scrollableContainerRef,
|
|
416
|
-
modalProps === null || modalProps === void 0 ? void 0 : modalProps.ref,
|
|
417
|
-
]), wrapperProps: tslib.__assign(tslib.__assign({}, modalProps === null || modalProps === void 0 ? void 0 : modalProps.wrapperProps), { onScroll: onScroll }), transitionProps: tslib.__assign(tslib.__assign({}, modalProps === null || modalProps === void 0 ? void 0 : modalProps.transitionProps), { onEntered: handleEntered }) }),
|
|
418
|
-
React__default.default.createElement(ModalMobile.Header, tslib.__assign({ hasCloser: true, sticky: true }, modalHeaderProps, { title: undefined, bottomAddons: React__default.default.createElement(React__default.default.Fragment, null,
|
|
419
|
-
renderSearch(),
|
|
420
|
-
flatOptions.length > 0 && (modalHeaderProps === null || modalHeaderProps === void 0 ? void 0 : modalHeaderProps.bottomAddons)) }), (modalHeaderProps === null || modalHeaderProps === void 0 ? void 0 : modalHeaderProps.title) || label || placeholder),
|
|
421
|
-
React__default.default.createElement(ModalMobile.Content, { flex: true, className: mobileStyles__default.default.modalContent }, renderOptionsList()),
|
|
422
|
-
(modalFooterProps === null || modalFooterProps === void 0 ? void 0 : modalFooterProps.children) && React__default.default.createElement(ModalMobile.Footer, tslib.__assign({}, modalFooterProps))));
|
|
423
|
-
}
|
|
424
|
-
return null;
|
|
425
|
-
};
|
|
426
|
-
return (React__default.default.createElement("div", tslib.__assign({}, (disabled && { 'aria-disabled': true }), { "aria-expanded": inputProps['aria-expanded'], "aria-haspopup": 'listbox', role: inputProps.role, className: cn__default.default(styles__default.default.component, (_b = {}, _b[styles__default.default.block] = block, _b), className), ref: rootRef, onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": coreComponentsShared.getDataTestId(dataTestId) }),
|
|
403
|
+
return (React__default.default.createElement("div", tslib.__assign({}, (disabled && { 'aria-disabled': true }), { "aria-expanded": inputProps['aria-expanded'], "aria-haspopup": 'listbox', role: inputProps.role, className: cn__default.default(styles__default.default.component, (_a = {}, _a[styles__default.default.block] = block, _a), className), ref: rootRef, onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": coreComponentsShared.getDataTestId(dataTestId) }),
|
|
427
404
|
nativeSelect && renderNativeSelect(),
|
|
428
405
|
React__default.default.createElement(Field, tslib.__assign({ selectedMultiple: selectedItems, selected: selectedItems[0], setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, multiple: multiple, open: open, disabled: disabled, size: size, placeholder: placeholder, label: label && React__default.default.createElement("span", tslib.__assign({}, getLabelProps()), label), labelView: labelView, Arrow: Arrow && React__default.default.createElement(Arrow, { open: open }), error: error, hint: hint, valueRenderer: valueRenderer, className: fieldClassName, innerProps: {
|
|
429
406
|
onBlur: handleFieldBlur,
|
|
@@ -439,9 +416,10 @@ function (_a, ref) {
|
|
|
439
416
|
: undefined,
|
|
440
417
|
}, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'field') }, fieldProps)),
|
|
441
418
|
name && !nativeSelect && renderValue(),
|
|
442
|
-
view === 'desktop' &&
|
|
443
|
-
view === 'mobile' &&
|
|
444
|
-
|
|
419
|
+
view === 'desktop' && !nativeSelect && (React__default.default.createElement(components_baseSelect_components_listDesktop_listPopoverDesktop.ListPopoverDesktop, tslib.__assign({}, components_baseSelect_components_listDesktop_helpers_getListPopoverDesktopProps.getListPopoverDesktopProps(props), { open: open, fieldRef: fieldRef, renderOptionsList: renderOptionsList }))),
|
|
420
|
+
view === 'mobile' && (React__default.default.createElement(components_baseSelect_components_listMobile_listMobile.ListMobile, { baseProps: isBottomSheet
|
|
421
|
+
? components_baseSelect_components_listMobile_helpers_getListBottomSheetMobileProps.getListBottomSheetMobileProps(props)
|
|
422
|
+
: components_baseSelect_components_listMobile_helpers_getListModalMobileProps.getListModalMobileProps(props), open: open, menuRef: menuRef, scrollableContainerRef: scrollableContainerRef, flatOptions: flatOptions, renderOptionsList: renderOptionsList, renderSearch: renderSearch, closeMenu: closeMenu, handleEntered: handleEntered }))));
|
|
445
423
|
});
|
|
446
424
|
|
|
447
425
|
exports.BaseSelect = BaseSelect;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ComponentProps } from "../../../types/component-types";
|
|
3
|
+
declare const getListPopoverDesktopProps: (props: ComponentProps) => {
|
|
4
|
+
Popover: import("react").ForwardRefExoticComponent<import("@alfalab/core-components-popover").PopoverProps & import("react").RefAttributes<HTMLDivElement>> | undefined;
|
|
5
|
+
popoverProps: Omit<import("@alfalab/core-components-popover").PopoverProps, "className" | "dataTestId" | "anchorElement" | "position" | "preventFlip" | "open" | "update" | "zIndex"> | undefined;
|
|
6
|
+
popoverPosition: import("@alfalab/core-components-popover").Position;
|
|
7
|
+
preventFlip: boolean;
|
|
8
|
+
popperClassName: string | undefined;
|
|
9
|
+
updatePopover: import("react").MutableRefObject<(() => void) | undefined> | undefined;
|
|
10
|
+
zIndexPopover: number | undefined;
|
|
11
|
+
};
|
|
12
|
+
export { getListPopoverDesktopProps };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
// отделяем необходимые пропсы для передачи в компонент
|
|
6
|
+
var getListPopoverDesktopProps = function (props) {
|
|
7
|
+
var Popover = props.Popover, popoverProps = props.popoverProps, _a = props.popoverPosition, popoverPosition = _a === void 0 ? 'bottom-start' : _a, _b = props.preventFlip, preventFlip = _b === void 0 ? true : _b, popperClassName = props.popperClassName, updatePopover = props.updatePopover, zIndexPopover = props.zIndexPopover;
|
|
8
|
+
return {
|
|
9
|
+
Popover: Popover,
|
|
10
|
+
popoverProps: popoverProps,
|
|
11
|
+
popoverPosition: popoverPosition,
|
|
12
|
+
preventFlip: preventFlip,
|
|
13
|
+
popperClassName: popperClassName,
|
|
14
|
+
updatePopover: updatePopover,
|
|
15
|
+
zIndexPopover: zIndexPopover,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
exports.getListPopoverDesktopProps = getListPopoverDesktopProps;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FC, ReactNode, RefObject } from 'react';
|
|
2
|
+
import { ListPopoverDesktopRestProps } from "./types/types";
|
|
3
|
+
type ListPopoverDesktopProps = {
|
|
4
|
+
open: boolean;
|
|
5
|
+
fieldRef: RefObject<HTMLInputElement>;
|
|
6
|
+
renderOptionsList: () => ReactNode;
|
|
7
|
+
} & ListPopoverDesktopRestProps;
|
|
8
|
+
declare const ListPopoverDesktop: FC<ListPopoverDesktopProps>;
|
|
9
|
+
export { ListPopoverDesktop };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib = require('tslib');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var cn = require('classnames');
|
|
8
|
+
var styles = require('../../index.module.css');
|
|
9
|
+
|
|
10
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
13
|
+
var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
|
|
14
|
+
var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
|
|
15
|
+
|
|
16
|
+
var ListPopoverDesktop = function (props) {
|
|
17
|
+
var Popover = props.Popover, open = props.open, popoverProps = props.popoverProps, fieldRef = props.fieldRef, _a = props.popoverPosition, popoverPosition = _a === void 0 ? 'bottom-start' : _a, _b = props.preventFlip, preventFlip = _b === void 0 ? true : _b, popperClassName = props.popperClassName, updatePopover = props.updatePopover, zIndexPopover = props.zIndexPopover, renderOptionsList = props.renderOptionsList;
|
|
18
|
+
if (Popover) {
|
|
19
|
+
return (React__default.default.createElement(Popover, tslib.__assign({}, popoverProps, { open: open, withTransition: false, anchorElement: fieldRef.current, position: popoverPosition, preventFlip: preventFlip, popperClassName: cn__default.default(styles__default.default.popoverInner, popperClassName), update: updatePopover, zIndex: zIndexPopover }), renderOptionsList()));
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.ListPopoverDesktop = ListPopoverDesktop;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ComponentProps } from "../../../types/component-types";
|
|
3
|
+
declare const getListBottomSheetMobileProps: (props: ComponentProps) => {
|
|
4
|
+
BottomSheet: import("react").ForwardRefExoticComponent<import("@alfalab/core-components-bottom-sheet").BottomSheetProps & import("react").RefAttributes<HTMLDivElement>> | undefined;
|
|
5
|
+
dataTestId: string | undefined;
|
|
6
|
+
label: import("react").ReactNode;
|
|
7
|
+
placeholder: string | undefined;
|
|
8
|
+
footer: import("react").ReactNode;
|
|
9
|
+
swipeable: boolean | undefined;
|
|
10
|
+
showSearch: boolean | undefined;
|
|
11
|
+
bottomSheetProps: Partial<import("@alfalab/core-components-bottom-sheet").BottomSheetProps> | undefined;
|
|
12
|
+
isBottomSheet: boolean;
|
|
13
|
+
nativeSelect: boolean;
|
|
14
|
+
onScroll: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
|
|
15
|
+
};
|
|
16
|
+
export { getListBottomSheetMobileProps };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
// отделяем необходимые пропсы для передачи в компонент
|
|
6
|
+
var getListBottomSheetMobileProps = function (props) {
|
|
7
|
+
var BottomSheet = props.BottomSheet, dataTestId = props.dataTestId, label = props.label, placeholder = props.placeholder, footer = props.footer, swipeable = props.swipeable, showSearch = props.showSearch, bottomSheetProps = props.bottomSheetProps, _a = props.isBottomSheet, isBottomSheet = _a === void 0 ? true : _a, _b = props.nativeSelect, nativeSelect = _b === void 0 ? false : _b, onScroll = props.onScroll;
|
|
8
|
+
return {
|
|
9
|
+
BottomSheet: BottomSheet,
|
|
10
|
+
dataTestId: dataTestId,
|
|
11
|
+
label: label,
|
|
12
|
+
placeholder: placeholder,
|
|
13
|
+
footer: footer,
|
|
14
|
+
swipeable: swipeable,
|
|
15
|
+
showSearch: showSearch,
|
|
16
|
+
bottomSheetProps: bottomSheetProps,
|
|
17
|
+
isBottomSheet: isBottomSheet,
|
|
18
|
+
nativeSelect: nativeSelect,
|
|
19
|
+
onScroll: onScroll,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.getListBottomSheetMobileProps = getListBottomSheetMobileProps;
|
package/cssm/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ComponentProps } from "../../../types/component-types";
|
|
3
|
+
declare const getListModalMobileProps: (props: ComponentProps) => {
|
|
4
|
+
ModalMobile: (import("react").ForwardRefExoticComponent<import("../../../types/component-types").ModalMobileProps & import("react").RefAttributes<HTMLDivElement>> & {
|
|
5
|
+
Header: import("react").FC<import("@alfalab/core-components-modal/shared").ModalHeaderProps>;
|
|
6
|
+
Footer: import("react").FC<import("@alfalab/core-components-modal/shared").ModalFooterProps>;
|
|
7
|
+
Content: import("react").FC<import("../../../types/component-types").ContentProps>;
|
|
8
|
+
}) | undefined;
|
|
9
|
+
dataTestId: string | undefined;
|
|
10
|
+
modalProps: Partial<import("@alfalab/core-components-base-modal").BaseModalProps & {
|
|
11
|
+
size?: "s" | "m" | "l" | "xl" | 500 | "fullscreen" | 600 | 800 | 1140 | undefined;
|
|
12
|
+
fullscreen?: boolean | undefined;
|
|
13
|
+
fixedPosition?: boolean | undefined;
|
|
14
|
+
hasCloser?: boolean | undefined;
|
|
15
|
+
iOSLock?: boolean | undefined;
|
|
16
|
+
} & {
|
|
17
|
+
breakpoint?: number | undefined;
|
|
18
|
+
defaultMatchMediaValue?: boolean | (() => boolean) | undefined;
|
|
19
|
+
} & import("react").RefAttributes<HTMLDivElement>> | undefined;
|
|
20
|
+
modalHeaderProps: Partial<import("@alfalab/core-components-modal/shared").ModalHeaderProps> | undefined;
|
|
21
|
+
modalFooterProps: Partial<import("@alfalab/core-components-modal/shared").ModalFooterProps> | undefined;
|
|
22
|
+
label: import("react").ReactNode;
|
|
23
|
+
placeholder: string | undefined;
|
|
24
|
+
isBottomSheet: boolean;
|
|
25
|
+
nativeSelect: boolean;
|
|
26
|
+
onScroll: ((event: import("react").MouseEvent<HTMLDivElement, MouseEvent>) => void) | undefined;
|
|
27
|
+
};
|
|
28
|
+
export { getListModalMobileProps };
|
package/cssm/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
// отделяем необходимые пропсы для передачи в компонент
|
|
6
|
+
var getListModalMobileProps = function (props) {
|
|
7
|
+
var ModalMobile = props.ModalMobile, dataTestId = props.dataTestId, modalProps = props.modalProps, modalHeaderProps = props.modalHeaderProps, modalFooterProps = props.modalFooterProps, label = props.label, placeholder = props.placeholder, _a = props.isBottomSheet, isBottomSheet = _a === void 0 ? true : _a, _b = props.nativeSelect, nativeSelect = _b === void 0 ? false : _b, onScroll = props.onScroll;
|
|
8
|
+
return {
|
|
9
|
+
ModalMobile: ModalMobile,
|
|
10
|
+
dataTestId: dataTestId,
|
|
11
|
+
modalProps: modalProps,
|
|
12
|
+
modalHeaderProps: modalHeaderProps,
|
|
13
|
+
modalFooterProps: modalFooterProps,
|
|
14
|
+
label: label,
|
|
15
|
+
placeholder: placeholder,
|
|
16
|
+
isBottomSheet: isBottomSheet,
|
|
17
|
+
nativeSelect: nativeSelect,
|
|
18
|
+
onScroll: onScroll,
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.getListModalMobileProps = getListModalMobileProps;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var components_baseSelect_components_listMobile_helpers_getListModalMobileProps = require('./get-list-modal-mobile-props.js');
|
|
6
|
+
var components_baseSelect_components_listMobile_helpers_getListBottomSheetMobileProps = require('./get-list-bottom-sheet-mobile-props.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.getListModalMobileProps = components_baseSelect_components_listMobile_helpers_getListModalMobileProps.getListModalMobileProps;
|
|
11
|
+
exports.getListBottomSheetMobileProps = components_baseSelect_components_listMobile_helpers_getListBottomSheetMobileProps.getListBottomSheetMobileProps;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FC, ReactNode, RefObject } from 'react';
|
|
2
|
+
import { OptionShape } from "../../../../typings";
|
|
3
|
+
import { ListBottomSheetMobileRestProps } from "./types/types";
|
|
4
|
+
type ListMobileProps = {
|
|
5
|
+
open: boolean;
|
|
6
|
+
menuRef: RefObject<HTMLDivElement>;
|
|
7
|
+
scrollableContainerRef: RefObject<HTMLDivElement>;
|
|
8
|
+
flatOptions: OptionShape[];
|
|
9
|
+
closeMenu: () => void;
|
|
10
|
+
handleEntered: (node: HTMLElement, isAppearing: boolean) => void;
|
|
11
|
+
renderSearch: () => ReactNode;
|
|
12
|
+
renderOptionsList: () => ReactNode;
|
|
13
|
+
} & ListBottomSheetMobileRestProps;
|
|
14
|
+
declare const ListBottomSheetMobile: FC<ListMobileProps>;
|
|
15
|
+
export { ListBottomSheetMobile };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib = require('tslib');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var coreComponentsShared = require('@alfalab/core-components-shared/cssm');
|
|
8
|
+
var mobileStyles = require('../../mobile.module.css');
|
|
9
|
+
|
|
10
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
13
|
+
var mobileStyles__default = /*#__PURE__*/_interopDefaultCompat(mobileStyles);
|
|
14
|
+
|
|
15
|
+
var ListBottomSheetMobile = function (props) {
|
|
16
|
+
var BottomSheet = props.BottomSheet, dataTestId = props.dataTestId, open = props.open, label = props.label, placeholder = props.placeholder, footer = props.footer, swipeable = props.swipeable, showSearch = props.showSearch, bottomSheetProps = props.bottomSheetProps, menuRef = props.menuRef, scrollableContainerRef = props.scrollableContainerRef, onScroll = props.onScroll, flatOptions = props.flatOptions, closeMenu = props.closeMenu, handleEntered = props.handleEntered, renderSearch = props.renderSearch, renderOptionsList = props.renderOptionsList;
|
|
17
|
+
if (BottomSheet) {
|
|
18
|
+
return (React__default.default.createElement(BottomSheet, tslib.__assign({ dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'bottom-sheet'), open: open, className: mobileStyles__default.default.sheet, contentClassName: mobileStyles__default.default.sheetContent, containerClassName: mobileStyles__default.default.sheetContainer, title: label || placeholder, actionButton: footer, stickyHeader: true, hasCloser: true, swipeable: swipeable, initialHeight: showSearch ? 'full' : 'default' }, bottomSheetProps, { sheetContainerRef: menuRef, scrollableContainerRef: scrollableContainerRef, onClose: function () {
|
|
19
|
+
var _a;
|
|
20
|
+
closeMenu();
|
|
21
|
+
(_a = bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 : bottomSheetProps.onClose) === null || _a === void 0 ? void 0 : _a.call(bottomSheetProps);
|
|
22
|
+
}, transitionProps: tslib.__assign(tslib.__assign({}, bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 : bottomSheetProps.transitionProps), { onEntered: handleEntered }), bottomAddons: React__default.default.createElement(React__default.default.Fragment, null,
|
|
23
|
+
renderSearch(),
|
|
24
|
+
flatOptions.length > 0 && (bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 : bottomSheetProps.bottomAddons)), containerProps: tslib.__assign(tslib.__assign({}, bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 : bottomSheetProps.containerProps), { onScroll: onScroll }) }), renderOptionsList()));
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.ListBottomSheetMobile = ListBottomSheetMobile;
|