@alfalab/core-components-select 15.3.0 → 16.0.1
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/Component.desktop.d.ts +3 -15
- package/Component.desktop.js +4 -2
- package/Component.mobile.d.ts +3 -39
- package/Component.mobile.js +23 -10
- package/Component.modal.mobile.d.ts +2 -256
- package/Component.modal.mobile.js +23 -35
- package/Component.responsive.d.ts +3 -17
- package/Component.responsive.js +11 -13
- package/components/arrow/Component.js +1 -1
- package/components/arrow/index.css +5 -5
- package/components/base-checkmark/Component.js +1 -1
- package/components/base-checkmark/index.css +4 -4
- package/components/base-option/Component.js +1 -1
- package/components/base-option/index.css +16 -16
- package/components/base-select/Component.d.ts +17 -2
- package/components/base-select/Component.js +188 -81
- package/components/base-select/index.css +12 -12
- package/components/base-select/index.js +1 -1
- package/{esm/components/base-select-mobile/index.css → components/base-select/mobile.css} +13 -22
- package/components/checkmark/Component.js +1 -1
- package/components/checkmark/index.css +11 -11
- package/components/checkmark-mobile/Component.js +1 -1
- package/components/checkmark-mobile/index.css +6 -6
- package/components/field/Component.js +1 -1
- package/components/field/index.css +15 -17
- package/components/footer/Component.d.ts +12 -0
- package/components/{base-select-mobile/footer → footer}/Component.js +6 -5
- package/components/{base-select-mobile/footer → footer}/index.css +6 -6
- package/components/footer/index.d.ts +1 -0
- package/components/{base-select-mobile/footer → footer}/index.js +3 -2
- package/components/index.js +2 -1
- package/components/optgroup/Component.js +1 -1
- package/components/optgroup/index.css +7 -7
- package/components/option/Component.js +1 -1
- package/components/option/index.css +24 -24
- package/components/options-list/Component.js +7 -3
- package/components/options-list/index.css +11 -11
- package/components/options-list/index.js +2 -1
- package/components/search/Component.d.ts +2 -4
- package/components/search/Component.js +1 -1
- package/components/search/index.css +2 -2
- package/components/virtual-options-list/Component.js +7 -3
- package/components/virtual-options-list/index.css +18 -18
- package/components/virtual-options-list/index.js +2 -1
- package/cssm/Component.desktop.d.ts +3 -15
- package/cssm/Component.desktop.js +5 -2
- package/cssm/Component.mobile.d.ts +3 -39
- package/cssm/Component.mobile.js +27 -13
- package/cssm/Component.modal.mobile.d.ts +2 -256
- package/cssm/Component.modal.mobile.js +28 -39
- package/cssm/Component.responsive.d.ts +3 -17
- package/cssm/Component.responsive.js +13 -15
- package/cssm/components/arrow/index.module.css +2 -2
- package/cssm/components/base-option/index.module.css +3 -3
- package/cssm/components/base-select/Component.d.ts +17 -2
- package/cssm/components/base-select/Component.js +186 -80
- package/cssm/components/base-select/index.js +2 -1
- package/cssm/components/base-select/index.module.css +2 -2
- package/cssm/components/{base-select-mobile/index.module.css → base-select/mobile.module.css} +0 -9
- package/cssm/components/checkmark/index.module.css +1 -1
- package/cssm/components/field/index.module.css +3 -5
- package/cssm/components/footer/Component.d.ts +12 -0
- package/cssm/components/{base-select-mobile/footer → footer}/Component.js +5 -4
- package/cssm/components/footer/index.d.ts +1 -0
- package/cssm/components/{base-select-mobile/footer → footer}/index.js +3 -2
- package/cssm/components/{base-select-mobile/footer → footer}/index.module.css +1 -1
- package/cssm/components/index.js +3 -1
- package/cssm/components/optgroup/index.module.css +1 -1
- package/cssm/components/option/index.module.css +4 -4
- package/cssm/components/options-list/Component.js +6 -2
- package/cssm/components/options-list/index.js +2 -1
- package/cssm/components/options-list/index.module.css +2 -2
- package/cssm/components/search/Component.d.ts +2 -4
- package/cssm/components/virtual-options-list/Component.js +6 -2
- package/cssm/components/virtual-options-list/index.js +2 -1
- package/cssm/components/virtual-options-list/index.module.css +3 -3
- package/cssm/desktop/index.d.ts +2 -2
- package/cssm/desktop/index.js +4 -1
- package/cssm/{hook-244c8d6e.js → hook-2f9ec939.js} +9 -5
- package/{esm/hook-8abfea97.d.ts → cssm/hook-ad89c253.d.ts} +3 -2
- package/cssm/index.d.ts +2 -2
- package/cssm/index.js +10 -9
- package/cssm/mobile/index.d.ts +1 -3
- package/cssm/mobile/index.js +15 -10
- package/cssm/presets/index.d.ts +1 -1
- package/cssm/presets/index.js +3 -2
- package/cssm/presets/useSelectWithApply/hook.js +3 -2
- package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
- package/cssm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/cssm/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
- package/cssm/shared/index.d.ts +9 -2
- package/cssm/shared/index.js +50 -48
- package/cssm/typings.d.ts +86 -7
- package/desktop/index.d.ts +2 -2
- package/desktop/index.js +3 -1
- package/esm/Component.desktop.d.ts +3 -15
- package/esm/Component.desktop.js +4 -2
- package/esm/Component.mobile.d.ts +3 -39
- package/esm/Component.mobile.js +22 -9
- package/esm/Component.modal.mobile.d.ts +2 -256
- package/esm/Component.modal.mobile.js +24 -36
- package/esm/Component.responsive.d.ts +3 -17
- package/esm/Component.responsive.js +11 -13
- package/esm/components/arrow/Component.js +1 -1
- package/esm/components/arrow/index.css +5 -5
- package/esm/components/base-checkmark/Component.js +1 -1
- package/esm/components/base-checkmark/index.css +4 -4
- package/esm/components/base-option/Component.js +1 -1
- package/esm/components/base-option/index.css +16 -16
- package/esm/components/base-select/Component.d.ts +17 -2
- package/esm/components/base-select/Component.js +190 -83
- package/esm/components/base-select/index.css +12 -12
- package/esm/components/base-select/index.js +1 -1
- package/{modern/components/base-select-mobile/index.css → esm/components/base-select/mobile.css} +13 -22
- package/esm/components/checkmark/Component.js +1 -1
- package/esm/components/checkmark/index.css +11 -11
- package/esm/components/checkmark-mobile/Component.js +1 -1
- package/esm/components/checkmark-mobile/index.css +6 -6
- package/esm/components/field/Component.js +1 -1
- package/esm/components/field/index.css +15 -17
- package/esm/components/footer/Component.d.ts +12 -0
- package/esm/components/{base-select-mobile/footer → footer}/Component.js +6 -5
- package/esm/components/{base-select-mobile/footer → footer}/index.css +6 -6
- package/esm/components/footer/index.d.ts +1 -0
- package/esm/components/{base-select-mobile/footer → footer}/index.js +1 -0
- package/esm/components/index.js +2 -1
- package/esm/components/optgroup/Component.js +1 -1
- package/esm/components/optgroup/index.css +7 -7
- package/esm/components/option/Component.js +1 -1
- package/esm/components/option/index.css +24 -24
- package/esm/components/options-list/Component.js +7 -3
- package/esm/components/options-list/index.css +11 -11
- package/esm/components/options-list/index.js +2 -1
- package/esm/components/search/Component.d.ts +2 -4
- package/esm/components/search/Component.js +1 -1
- package/esm/components/search/index.css +2 -2
- package/esm/components/virtual-options-list/Component.js +7 -3
- package/esm/components/virtual-options-list/index.css +18 -18
- package/esm/components/virtual-options-list/index.js +2 -1
- package/esm/desktop/index.d.ts +2 -2
- package/esm/desktop/index.js +3 -1
- package/{hook-8abfea97.d.ts → esm/hook-ad89c253.d.ts} +3 -2
- package/esm/{hook-70d58270.js → hook-d82699d1.js} +10 -6
- package/esm/index.d.ts +2 -2
- package/esm/index.js +8 -7
- package/esm/mobile/index.d.ts +1 -3
- package/esm/mobile/index.js +12 -8
- package/esm/presets/index.d.ts +1 -1
- package/esm/presets/index.js +3 -2
- package/esm/presets/useSelectWithApply/hook.js +3 -2
- package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
- package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
- package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
- package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
- package/esm/presets/useSelectWithLoading/hook.js +1 -1
- package/esm/presets/useSelectWithLoading/index.css +2 -2
- package/esm/shared/index.d.ts +9 -2
- package/esm/shared/index.js +30 -29
- package/esm/typings.d.ts +86 -7
- package/{cssm/hook-8abfea97.d.ts → hook-ad89c253.d.ts} +3 -2
- package/{hook-0a5c9f56.js → hook-df30325f.js} +9 -5
- package/index.d.ts +2 -2
- package/index.js +8 -7
- package/mobile/index.d.ts +1 -3
- package/mobile/index.js +12 -8
- package/modern/Component.desktop.d.ts +3 -15
- package/modern/Component.desktop.js +5 -3
- package/modern/Component.mobile.d.ts +3 -39
- package/modern/Component.mobile.js +29 -13
- package/modern/Component.modal.mobile.d.ts +2 -256
- package/modern/Component.modal.mobile.js +23 -43
- package/modern/Component.responsive.d.ts +3 -17
- package/modern/Component.responsive.js +11 -13
- package/modern/components/arrow/Component.js +1 -1
- package/modern/components/arrow/index.css +5 -5
- package/modern/components/base-checkmark/Component.js +1 -1
- package/modern/components/base-checkmark/index.css +4 -4
- package/modern/components/base-option/Component.js +1 -1
- package/modern/components/base-option/index.css +16 -16
- package/modern/components/base-select/Component.d.ts +17 -2
- package/modern/components/base-select/Component.js +179 -72
- package/modern/components/base-select/index.css +12 -12
- package/modern/components/base-select/index.js +1 -1
- package/{components/base-select-mobile/index.css → modern/components/base-select/mobile.css} +13 -22
- package/modern/components/checkmark/Component.js +1 -1
- package/modern/components/checkmark/index.css +11 -11
- package/modern/components/checkmark-mobile/Component.js +1 -1
- package/modern/components/checkmark-mobile/index.css +6 -6
- package/modern/components/field/Component.js +1 -1
- package/modern/components/field/index.css +15 -17
- package/modern/components/footer/Component.d.ts +12 -0
- package/modern/components/{base-select-mobile/footer → footer}/Component.js +5 -4
- package/modern/components/{base-select-mobile/footer → footer}/index.css +6 -6
- package/modern/components/footer/index.d.ts +1 -0
- package/modern/components/{base-select-mobile/footer → footer}/index.js +1 -0
- package/modern/components/index.js +2 -1
- package/modern/components/optgroup/Component.js +1 -1
- package/modern/components/optgroup/index.css +7 -7
- package/modern/components/option/Component.js +1 -1
- package/modern/components/option/index.css +24 -24
- package/modern/components/options-list/Component.js +5 -3
- package/modern/components/options-list/index.css +11 -11
- package/modern/components/options-list/index.js +2 -1
- package/modern/components/search/Component.d.ts +2 -4
- package/modern/components/search/Component.js +1 -1
- package/modern/components/search/index.css +2 -2
- package/modern/components/virtual-options-list/Component.js +5 -3
- package/modern/components/virtual-options-list/index.css +18 -18
- package/modern/components/virtual-options-list/index.js +2 -1
- package/modern/desktop/index.d.ts +2 -2
- package/modern/desktop/index.js +3 -1
- package/modern/{hook-8abfea97.d.ts → hook-ad89c253.d.ts} +3 -2
- package/modern/{hook-4eceefed.js → hook-d879e08e.js} +7 -3
- package/modern/index.d.ts +2 -2
- package/modern/index.js +8 -7
- package/modern/mobile/index.d.ts +1 -3
- package/modern/mobile/index.js +12 -8
- package/modern/presets/index.d.ts +1 -1
- package/modern/presets/index.js +3 -2
- package/modern/presets/useSelectWithApply/hook.js +3 -2
- package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
- package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
- package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
- package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
- package/modern/presets/useSelectWithLoading/hook.js +1 -1
- package/modern/presets/useSelectWithLoading/index.css +2 -2
- package/modern/shared/index.d.ts +9 -2
- package/modern/shared/index.js +29 -28
- package/modern/typings.d.ts +86 -7
- package/package.json +13 -11
- package/presets/index.d.ts +1 -1
- package/presets/index.js +3 -2
- package/presets/useSelectWithApply/hook.js +3 -2
- package/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
- package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
- package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
- package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
- package/presets/useSelectWithLoading/hook.js +1 -1
- package/presets/useSelectWithLoading/index.css +2 -2
- package/shared/index.d.ts +9 -2
- package/shared/index.js +39 -38
- package/src/Component.desktop.tsx +5 -14
- package/src/Component.mobile.tsx +38 -57
- package/src/Component.modal.mobile.tsx +5 -147
- package/src/Component.responsive.tsx +9 -44
- package/src/components/base-select/Component.tsx +380 -156
- package/src/components/base-select/index.module.css +1 -1
- package/src/components/{base-select-mobile/index.module.css → base-select/mobile.module.css} +0 -15
- package/src/components/{base-select-mobile/footer → footer}/Component.tsx +22 -4
- package/src/components/{base-select-mobile/footer → footer}/index.module.css +1 -1
- package/src/components/footer/index.ts +1 -0
- package/src/components/options-list/Component.tsx +6 -2
- package/src/components/virtual-options-list/Component.tsx +6 -2
- package/src/desktop/index.ts +2 -1
- package/src/index.ts +2 -4
- package/src/mobile/index.ts +1 -2
- package/src/presets/useSelectWithApply/hook.tsx +9 -3
- package/src/shared/index.ts +10 -2
- package/src/typings.ts +110 -9
- package/src/vars.css +1 -1
- package/typings.d.ts +86 -7
- package/components/base-select-mobile/Component.d.ts +0 -71
- package/components/base-select-mobile/Component.js +0 -296
- package/components/base-select-mobile/footer/Component.d.ts +0 -9
- package/components/base-select-mobile/footer/index.d.ts +0 -1
- package/components/base-select-mobile/index.d.ts +0 -1
- package/components/base-select-mobile/index.js +0 -36
- package/cssm/components/base-select-mobile/Component.d.ts +0 -71
- package/cssm/components/base-select-mobile/Component.js +0 -303
- package/cssm/components/base-select-mobile/footer/Component.d.ts +0 -9
- package/cssm/components/base-select-mobile/footer/index.d.ts +0 -1
- package/cssm/components/base-select-mobile/index.d.ts +0 -1
- package/cssm/components/base-select-mobile/index.js +0 -45
- package/esm/components/base-select-mobile/Component.d.ts +0 -71
- package/esm/components/base-select-mobile/Component.js +0 -286
- package/esm/components/base-select-mobile/footer/Component.d.ts +0 -9
- package/esm/components/base-select-mobile/footer/index.d.ts +0 -1
- package/esm/components/base-select-mobile/index.d.ts +0 -1
- package/esm/components/base-select-mobile/index.js +0 -28
- package/modern/components/base-select-mobile/Component.d.ts +0 -71
- package/modern/components/base-select-mobile/Component.js +0 -285
- package/modern/components/base-select-mobile/footer/Component.d.ts +0 -9
- package/modern/components/base-select-mobile/footer/index.d.ts +0 -1
- package/modern/components/base-select-mobile/index.d.ts +0 -1
- package/modern/components/base-select-mobile/index.js +0 -27
- package/src/components/base-select-mobile/Component.tsx +0 -572
- package/src/components/base-select-mobile/footer/index.ts +0 -1
- package/src/components/base-select-mobile/index.ts +0 -1
- /package/cssm/{hook-244c8d6e.d.ts → hook-2f9ec939.d.ts} +0 -0
- /package/esm/{hook-70d58270.d.ts → hook-d82699d1.d.ts} +0 -0
- /package/{hook-0a5c9f56.d.ts → hook-df30325f.d.ts} +0 -0
- /package/modern/{hook-4eceefed.d.ts → hook-d879e08e.d.ts} +0 -0
package/modern/typings.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { AriaAttributes, FC, FocusEvent, MouseEvent, ReactElement, ReactNode, RefAttributes, SVGProps } from 'react';
|
|
2
|
+
import { BottomSheetProps } from "@alfalab/core-components-bottom-sheet";
|
|
3
|
+
import { FormControlProps } from "@alfalab/core-components-form-control";
|
|
2
4
|
import { InputProps } from "@alfalab/core-components-input";
|
|
5
|
+
import { ModalProps } from "@alfalab/core-components-modal";
|
|
6
|
+
import { ModalFooterProps, ModalHeaderProps } from "@alfalab/core-components-modal/shared";
|
|
3
7
|
import { PopoverProps } from "@alfalab/core-components-popover";
|
|
8
|
+
import { UseSelectWithApplyProps } from "./hook-ad89c253";
|
|
4
9
|
type AnyObject = Record<string, any>;
|
|
5
10
|
type OptionShape = {
|
|
6
11
|
/**
|
|
@@ -217,13 +222,14 @@ type BaseSelectProps = {
|
|
|
217
222
|
/**
|
|
218
223
|
* Компонент поиска
|
|
219
224
|
*/
|
|
220
|
-
Search?: FC<SearchProps
|
|
225
|
+
Search?: FC<SearchProps>;
|
|
221
226
|
/**
|
|
222
227
|
* Настройки поиска
|
|
223
228
|
*/
|
|
224
229
|
searchProps?: {
|
|
225
230
|
componentProps?: SearchProps;
|
|
226
231
|
accessor?: (option: OptionShape) => string;
|
|
232
|
+
filterFn?: (optionText: string, search: string) => boolean;
|
|
227
233
|
value?: string;
|
|
228
234
|
onChange?: (value: string) => void;
|
|
229
235
|
};
|
|
@@ -528,10 +534,10 @@ type OptionProps = {
|
|
|
528
534
|
*/
|
|
529
535
|
innerProps: {
|
|
530
536
|
id: string;
|
|
531
|
-
onClick
|
|
532
|
-
onMouseDown
|
|
533
|
-
onMouseMove
|
|
534
|
-
role
|
|
537
|
+
onClick?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
538
|
+
onMouseDown?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
539
|
+
onMouseMove?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
540
|
+
role?: string;
|
|
535
541
|
} & RefAttributes<HTMLDivElement> & AriaAttributes;
|
|
536
542
|
/**
|
|
537
543
|
* Идентификатор для систем автоматизированного тестирования
|
|
@@ -572,5 +578,78 @@ type CheckmarkProps = {
|
|
|
572
578
|
*/
|
|
573
579
|
icon?: FC<SVGProps<SVGSVGElement>>;
|
|
574
580
|
};
|
|
575
|
-
type SearchProps = InputProps
|
|
576
|
-
|
|
581
|
+
type SearchProps = InputProps & RefAttributes<HTMLInputElement>;
|
|
582
|
+
type SelectFieldProps = Omit<FormControlProps, 'size'> & Record<string, unknown>;
|
|
583
|
+
type AdditionalMobileProps = {
|
|
584
|
+
/**
|
|
585
|
+
* Показывать кнопку 'Сбросить' в футере мобильного компонента
|
|
586
|
+
*/
|
|
587
|
+
showClear?: UseSelectWithApplyProps['showClear'];
|
|
588
|
+
/**
|
|
589
|
+
* Показывать пункт "Выбрать все"
|
|
590
|
+
*/
|
|
591
|
+
showSelectAll?: UseSelectWithApplyProps['showSelectAll'];
|
|
592
|
+
/**
|
|
593
|
+
* Показывать пункт "Выбрать все" в заголовке списка у мобильного компонента
|
|
594
|
+
*/
|
|
595
|
+
showHeaderWithSelectAll?: UseSelectWithApplyProps['showHeaderWithSelectAll'];
|
|
596
|
+
/**
|
|
597
|
+
* Использовать ли хук useSelectWithApply в мобильном компоненте
|
|
598
|
+
*/
|
|
599
|
+
useWithApplyHook?: boolean;
|
|
600
|
+
};
|
|
601
|
+
type BottomSheetSelectMobileProps = {
|
|
602
|
+
/**
|
|
603
|
+
* Футер
|
|
604
|
+
* @deprecated Используйте bottomSheetProps.actionButton
|
|
605
|
+
*/
|
|
606
|
+
footer?: ReactNode;
|
|
607
|
+
/**
|
|
608
|
+
* Будет ли свайпаться шторка
|
|
609
|
+
* @deprecated Используйте bottomSheetProps.swipeable
|
|
610
|
+
*/
|
|
611
|
+
swipeable?: boolean;
|
|
612
|
+
/**
|
|
613
|
+
* Дополнительные пропсы шторки
|
|
614
|
+
*/
|
|
615
|
+
bottomSheetProps?: Partial<BottomSheetProps>;
|
|
616
|
+
};
|
|
617
|
+
type ModalSelectMobileProps = {
|
|
618
|
+
/**
|
|
619
|
+
* Дополнительные пропсы шапки модалки
|
|
620
|
+
*/
|
|
621
|
+
modalHeaderProps?: Partial<ModalHeaderProps>;
|
|
622
|
+
/**
|
|
623
|
+
* Дополнительные пропсы модалки
|
|
624
|
+
*/
|
|
625
|
+
modalProps?: Partial<ModalProps & RefAttributes<HTMLDivElement>>;
|
|
626
|
+
/**
|
|
627
|
+
* Дополнительные пропсы футера модалки
|
|
628
|
+
*/
|
|
629
|
+
modalFooterProps?: Partial<ModalFooterProps>;
|
|
630
|
+
};
|
|
631
|
+
type ConditionalMobileProps = ({
|
|
632
|
+
isBottomSheet?: true;
|
|
633
|
+
} & BottomSheetSelectMobileProps) | ({
|
|
634
|
+
isBottomSheet: false;
|
|
635
|
+
} & ModalSelectMobileProps);
|
|
636
|
+
type SelectModalMobileProps = Omit<BaseSelectProps, 'Checkmark'> & AdditionalMobileProps & ModalSelectMobileProps;
|
|
637
|
+
type SelectMobileProps = Omit<BaseSelectProps, 'Checkmark'> & AdditionalMobileProps & ConditionalMobileProps;
|
|
638
|
+
type SelectDesktopProps = Omit<BaseSelectProps, 'fieldProps'> & {
|
|
639
|
+
/**
|
|
640
|
+
* Пропсы, которые будут прокинуты в компонент поля
|
|
641
|
+
*/
|
|
642
|
+
fieldProps?: SelectFieldProps;
|
|
643
|
+
};
|
|
644
|
+
type SelectProps = BaseSelectProps & AdditionalMobileProps & ConditionalMobileProps & {
|
|
645
|
+
/**
|
|
646
|
+
* Контрольная точка, с нее начинается desktop версия
|
|
647
|
+
* @default 1024
|
|
648
|
+
*/
|
|
649
|
+
breakpoint?: number;
|
|
650
|
+
/**
|
|
651
|
+
* Значение по-умолчанию для хука useMatchMedia
|
|
652
|
+
*/
|
|
653
|
+
defaultMatchMediaValue?: boolean | (() => boolean);
|
|
654
|
+
};
|
|
655
|
+
export { AnyObject, OptionShape, GroupShape, BaseSelectChangePayload, BaseSelectProps, FieldProps, ArrowProps, OptionsListProps, OptgroupProps, OptionProps, CheckmarkProps, SearchProps, SelectFieldProps, AdditionalMobileProps, BottomSheetSelectMobileProps, ModalSelectMobileProps, SelectModalMobileProps, SelectMobileProps, SelectDesktopProps, SelectProps };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-select",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "16.0.1",
|
|
4
4
|
"description": "Select component",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -15,23 +15,25 @@
|
|
|
15
15
|
"react-dom": "^16.9.0 || ^17.0.1 || ^18.0.0"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@alfalab/core-components-badge": "^5.
|
|
19
|
-
"@alfalab/core-components-base-modal": "^5.
|
|
20
|
-
"@alfalab/core-components-bottom-sheet": "^6.11.
|
|
21
|
-
"@alfalab/core-components-button": "^
|
|
22
|
-
"@alfalab/core-components-checkbox": "^3.
|
|
23
|
-
"@alfalab/core-components-form-control": "^
|
|
24
|
-
"@alfalab/core-components-input": "^
|
|
25
|
-
"@alfalab/core-components-modal": "^8.1.
|
|
18
|
+
"@alfalab/core-components-badge": "^5.3.0",
|
|
19
|
+
"@alfalab/core-components-base-modal": "^5.6.0",
|
|
20
|
+
"@alfalab/core-components-bottom-sheet": "^6.11.5",
|
|
21
|
+
"@alfalab/core-components-button": "^10.0.1",
|
|
22
|
+
"@alfalab/core-components-checkbox": "^3.3.0",
|
|
23
|
+
"@alfalab/core-components-form-control": "^11.0.0",
|
|
24
|
+
"@alfalab/core-components-input": "^13.0.1",
|
|
25
|
+
"@alfalab/core-components-modal": "^8.1.2",
|
|
26
|
+
"@alfalab/core-components-mq": "^4.2.0",
|
|
26
27
|
"@alfalab/core-components-popover": "^6.1.0",
|
|
27
28
|
"@alfalab/core-components-scrollbar": "^2.2.0",
|
|
28
29
|
"@alfalab/core-components-skeleton": "^4.1.0",
|
|
29
|
-
"@alfalab/core-components-shared": "^0.
|
|
30
|
+
"@alfalab/core-components-shared": "^0.8.0",
|
|
30
31
|
"@alfalab/hooks": "^1.13.0",
|
|
31
32
|
"@alfalab/icons-glyph": "^2.108.0",
|
|
32
33
|
"@juggle/resize-observer": "^3.3.1",
|
|
34
|
+
"compute-scroll-into-view": "^3.1.0",
|
|
33
35
|
"classnames": "^2.3.1",
|
|
34
|
-
"downshift": "^
|
|
36
|
+
"downshift": "^8.2.2",
|
|
35
37
|
"intersection-observer": "^0.12.0",
|
|
36
38
|
"react-merge-refs": "^1.1.0",
|
|
37
39
|
"react-virtual": "^2.3.2",
|
package/presets/index.d.ts
CHANGED
package/presets/index.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var presets_useSelectWithLoading_hook = require('./useSelectWithLoading/hook.js');
|
|
6
6
|
var presets_useLazyLoading_hook = require('./useLazyLoading/hook.js');
|
|
7
|
-
var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-
|
|
7
|
+
var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-df30325f.js');
|
|
8
8
|
require('tslib');
|
|
9
9
|
require('react');
|
|
10
10
|
require('@alfalab/core-components-skeleton');
|
|
@@ -20,8 +20,9 @@ require('intersection-observer');
|
|
|
20
20
|
require('../utils.js');
|
|
21
21
|
require('../components/options-list/Component.js');
|
|
22
22
|
require('react-merge-refs');
|
|
23
|
+
require('@alfalab/core-components-mq');
|
|
23
24
|
require('@alfalab/core-components-scrollbar');
|
|
24
|
-
require('@alfalab/
|
|
25
|
+
require('@alfalab/core-components-shared');
|
|
25
26
|
require('../consts.js');
|
|
26
27
|
require('../components/optgroup/Component.js');
|
|
27
28
|
require('./useSelectWithApply/options-list-with-apply/footer/Component.js');
|
|
@@ -5,12 +5,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
require('tslib');
|
|
6
6
|
require('react');
|
|
7
7
|
require('../../utils.js');
|
|
8
|
-
var presets_useSelectWithApply_optionsListWithApply_Component = require('../../hook-
|
|
8
|
+
var presets_useSelectWithApply_optionsListWithApply_Component = require('../../hook-df30325f.js');
|
|
9
9
|
require('../../components/options-list/Component.js');
|
|
10
10
|
require('react-merge-refs');
|
|
11
11
|
require('classnames');
|
|
12
|
+
require('@alfalab/core-components-mq');
|
|
12
13
|
require('@alfalab/core-components-scrollbar');
|
|
13
|
-
require('@alfalab/
|
|
14
|
+
require('@alfalab/core-components-shared');
|
|
14
15
|
require('../../consts.js');
|
|
15
16
|
require('../../components/optgroup/Component.js');
|
|
16
17
|
require('./options-list-with-apply/footer/Component.js');
|
|
@@ -6,13 +6,14 @@ require('tslib');
|
|
|
6
6
|
require('react');
|
|
7
7
|
require('../../../components/options-list/Component.js');
|
|
8
8
|
require('../../../consts.js');
|
|
9
|
-
var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-
|
|
9
|
+
var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-df30325f.js');
|
|
10
10
|
require('./footer/Component.js');
|
|
11
11
|
require('./header/Component.js');
|
|
12
12
|
require('react-merge-refs');
|
|
13
13
|
require('classnames');
|
|
14
|
+
require('@alfalab/core-components-mq');
|
|
14
15
|
require('@alfalab/core-components-scrollbar');
|
|
15
|
-
require('@alfalab/
|
|
16
|
+
require('@alfalab/core-components-shared');
|
|
16
17
|
require('../../../utils.js');
|
|
17
18
|
require('../../../components/optgroup/Component.js');
|
|
18
19
|
require('@alfalab/core-components-button/desktop');
|
|
@@ -9,7 +9,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
9
9
|
|
|
10
10
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
11
11
|
|
|
12
|
-
var styles = {"footer":"
|
|
12
|
+
var styles = {"footer":"select__footer_1vdbq"};
|
|
13
13
|
require('./index.css')
|
|
14
14
|
|
|
15
15
|
var Footer = function (_a) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 1tiyk */
|
|
2
2
|
:root {
|
|
3
3
|
} /* deprecated */ :root {
|
|
4
4
|
--color-light-bg-primary: #fff; /* 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 */
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
--gap-s: 12px;
|
|
18
18
|
} :root {
|
|
19
19
|
} :root {
|
|
20
|
-
} .
|
|
20
|
+
} .select__footer_1vdbq {
|
|
21
21
|
background-color: var(--color-light-bg-primary);
|
|
22
22
|
padding: var(--gap-s);
|
|
23
23
|
outline: none
|
|
24
|
-
} .
|
|
24
|
+
} .select__footer_1vdbq > * + * {
|
|
25
25
|
margin-left: var(--gap-xs);
|
|
26
26
|
}
|
|
@@ -11,7 +11,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
11
11
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
12
12
|
var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
|
|
13
13
|
|
|
14
|
-
var styles = {"desktop":"
|
|
14
|
+
var styles = {"desktop":"select__desktop_1ywyh","mobile":"select__mobile_1ywyh"};
|
|
15
15
|
require('./index.css')
|
|
16
16
|
|
|
17
17
|
var Header = function (_a) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: t09wr */
|
|
2
2
|
:root {
|
|
3
3
|
} /* deprecated */ :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 */
|
|
4
4
|
} :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 */
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
--gap-s: 12px;
|
|
17
17
|
} :root {
|
|
18
18
|
} :root {
|
|
19
|
-
} .
|
|
19
|
+
} .select__desktop_1ywyh {
|
|
20
20
|
padding: var(--gap-s);
|
|
21
|
-
} .
|
|
21
|
+
} .select__mobile_1ywyh {
|
|
22
22
|
padding: var(--gap-s) var(--gap-xs);
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "../../../hook-
|
|
1
|
+
export * from "../../../hook-df30325f";
|
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-
|
|
5
|
+
var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-df30325f.js');
|
|
6
6
|
require('tslib');
|
|
7
7
|
require('react');
|
|
8
8
|
require('../../../utils.js');
|
|
9
9
|
require('../../../components/options-list/Component.js');
|
|
10
10
|
require('react-merge-refs');
|
|
11
11
|
require('classnames');
|
|
12
|
+
require('@alfalab/core-components-mq');
|
|
12
13
|
require('@alfalab/core-components-scrollbar');
|
|
13
|
-
require('@alfalab/
|
|
14
|
+
require('@alfalab/core-components-shared');
|
|
14
15
|
require('../../../consts.js');
|
|
15
16
|
require('../../../components/optgroup/Component.js');
|
|
16
17
|
require('./footer/Component.js');
|
|
@@ -18,7 +18,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
18
18
|
|
|
19
19
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
20
20
|
|
|
21
|
-
var styles = {"skeleton":"
|
|
21
|
+
var styles = {"skeleton":"select__skeleton_16ngw"};
|
|
22
22
|
require('./index.css')
|
|
23
23
|
|
|
24
24
|
function useSelectWithLoading(_a) {
|
package/shared/index.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
export * from "../components/index";
|
|
2
1
|
export * from "../presets/index";
|
|
3
2
|
export * from "../typings";
|
|
4
3
|
export * from "../utils";
|
|
5
|
-
export
|
|
4
|
+
export * from "../components/option/index";
|
|
5
|
+
export * from "../components/base-option/index";
|
|
6
|
+
export * from "../components/options-list/index";
|
|
7
|
+
export * from "../components/virtual-options-list/index";
|
|
8
|
+
export * from "../components/field/index";
|
|
9
|
+
export * from "../components/arrow/index";
|
|
10
|
+
export * from "../components/base-select/index";
|
|
11
|
+
export * from "../components/optgroup/index";
|
|
12
|
+
export * from "../components/footer/index";
|
package/shared/index.js
CHANGED
|
@@ -2,59 +2,51 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var components_arrow_Component = require('../components/arrow/Component.js');
|
|
6
|
-
var components_baseSelect_Component = require('../components/base-select/Component.js');
|
|
7
|
-
var components_field_Component = require('../components/field/Component.js');
|
|
8
|
-
var components_optgroup_Component = require('../components/optgroup/Component.js');
|
|
9
|
-
var components_option_Component = require('../components/option/Component.js');
|
|
10
|
-
var components_optionsList_Component = require('../components/options-list/Component.js');
|
|
11
|
-
var components_virtualOptionsList_Component = require('../components/virtual-options-list/Component.js');
|
|
12
|
-
var components_baseOption_Component = require('../components/base-option/Component.js');
|
|
13
|
-
var components_search_Component = require('../components/search/Component.js');
|
|
14
5
|
var presets_useSelectWithLoading_hook = require('../presets/useSelectWithLoading/hook.js');
|
|
15
6
|
var presets_useLazyLoading_hook = require('../presets/useLazyLoading/hook.js');
|
|
16
|
-
var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-
|
|
7
|
+
var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-df30325f.js');
|
|
17
8
|
var utils = require('../utils.js');
|
|
9
|
+
var components_option_Component = require('../components/option/Component.js');
|
|
10
|
+
var components_baseOption_Component = require('../components/base-option/Component.js');
|
|
11
|
+
var components_optionsList_Component = require('../components/options-list/Component.js');
|
|
12
|
+
var components_virtualOptionsList_Component = require('../components/virtual-options-list/Component.js');
|
|
13
|
+
var components_field_Component = require('../components/field/Component.js');
|
|
14
|
+
var components_arrow_Component = require('../components/arrow/Component.js');
|
|
15
|
+
var components_baseSelect_Component = require('../components/base-select/Component.js');
|
|
16
|
+
var components_optgroup_Component = require('../components/optgroup/Component.js');
|
|
17
|
+
var components_footer_Component = require('../components/footer/Component.js');
|
|
18
|
+
require('tslib');
|
|
18
19
|
require('react');
|
|
20
|
+
require('@alfalab/core-components-skeleton');
|
|
21
|
+
require('intersection-observer');
|
|
22
|
+
require('../consts.js');
|
|
23
|
+
require('../presets/useSelectWithApply/options-list-with-apply/footer/Component.js');
|
|
24
|
+
require('@alfalab/core-components-button/desktop');
|
|
25
|
+
require('../presets/useSelectWithApply/options-list-with-apply/header/Component.js');
|
|
19
26
|
require('classnames');
|
|
20
|
-
require('@alfalab/
|
|
21
|
-
require('tslib');
|
|
22
|
-
require('react-merge-refs');
|
|
23
|
-
require('@juggle/resize-observer');
|
|
24
|
-
require('downshift');
|
|
25
|
-
require('@alfalab/core-components-popover');
|
|
26
|
-
require('@alfalab/core-components-shared');
|
|
27
|
-
require('@alfalab/hooks');
|
|
28
|
-
require('../components/native-select/Component.js');
|
|
27
|
+
require('@alfalab/core-components-checkbox');
|
|
29
28
|
require('../components/checkmark/Component.js');
|
|
30
29
|
require('@alfalab/core-components-badge');
|
|
31
|
-
require('@alfalab/core-components-checkbox');
|
|
32
30
|
require('@alfalab/icons-glyph/CheckmarkCircleMIcon');
|
|
33
31
|
require('@alfalab/icons-glyph/CheckmarkMIcon');
|
|
34
32
|
require('../components/checkmark-mobile/Component.js');
|
|
33
|
+
require('../components/base-checkmark/Component.js');
|
|
34
|
+
require('react-merge-refs');
|
|
35
|
+
require('@alfalab/core-components-mq');
|
|
35
36
|
require('@alfalab/core-components-scrollbar');
|
|
36
|
-
require('
|
|
37
|
+
require('@alfalab/core-components-shared');
|
|
37
38
|
require('react-virtual');
|
|
38
|
-
require('
|
|
39
|
-
require('@alfalab/
|
|
40
|
-
require('@
|
|
41
|
-
require('
|
|
42
|
-
require('
|
|
43
|
-
require('../
|
|
44
|
-
require('@alfalab/core-components-
|
|
45
|
-
require('
|
|
39
|
+
require('@alfalab/hooks');
|
|
40
|
+
require('@alfalab/icons-glyph/ChevronDownMIcon');
|
|
41
|
+
require('@juggle/resize-observer');
|
|
42
|
+
require('compute-scroll-into-view');
|
|
43
|
+
require('downshift');
|
|
44
|
+
require('../components/native-select/Component.js');
|
|
45
|
+
require('@alfalab/core-components-base-modal');
|
|
46
|
+
require('@alfalab/core-components-button/mobile');
|
|
46
47
|
|
|
47
48
|
|
|
48
49
|
|
|
49
|
-
exports.Arrow = components_arrow_Component.Arrow;
|
|
50
|
-
exports.BaseSelect = components_baseSelect_Component.BaseSelect;
|
|
51
|
-
exports.Field = components_field_Component.Field;
|
|
52
|
-
exports.Optgroup = components_optgroup_Component.Optgroup;
|
|
53
|
-
exports.Option = components_option_Component.Option;
|
|
54
|
-
exports.OptionsList = components_optionsList_Component.OptionsList;
|
|
55
|
-
exports.VirtualOptionsList = components_virtualOptionsList_Component.VirtualOptionsList;
|
|
56
|
-
exports.BaseOption = components_baseOption_Component.BaseOption;
|
|
57
|
-
exports.Search = components_search_Component.Search;
|
|
58
50
|
exports.useSelectWithLoading = presets_useSelectWithLoading_hook.useSelectWithLoading;
|
|
59
51
|
exports.useLazyLoading = presets_useLazyLoading_hook.useLazyLoading;
|
|
60
52
|
exports.SELECT_ALL_KEY = presets_useSelectWithApply_optionsListWithApply_Component.SELECT_ALL_KEY;
|
|
@@ -68,3 +60,12 @@ exports.lastIndexOf = utils.lastIndexOf;
|
|
|
68
60
|
exports.processOptions = utils.processOptions;
|
|
69
61
|
exports.usePrevious = utils.usePrevious;
|
|
70
62
|
exports.useVisibleOptions = utils.useVisibleOptions;
|
|
63
|
+
exports.Option = components_option_Component.Option;
|
|
64
|
+
exports.BaseOption = components_baseOption_Component.BaseOption;
|
|
65
|
+
exports.OptionsList = components_optionsList_Component.OptionsList;
|
|
66
|
+
exports.VirtualOptionsList = components_virtualOptionsList_Component.VirtualOptionsList;
|
|
67
|
+
exports.Field = components_field_Component.Field;
|
|
68
|
+
exports.Arrow = components_arrow_Component.Arrow;
|
|
69
|
+
exports.BaseSelect = components_baseSelect_Component.BaseSelect;
|
|
70
|
+
exports.Optgroup = components_optgroup_Component.Optgroup;
|
|
71
|
+
exports.Footer = components_footer_Component.Footer;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import React, { forwardRef } from 'react';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
FormControlDesktopProps,
|
|
6
|
-
} from '@alfalab/core-components-form-control/desktop';
|
|
3
|
+
import { FormControlDesktop } from '@alfalab/core-components-form-control/desktop';
|
|
4
|
+
import { Popover } from '@alfalab/core-components-popover';
|
|
7
5
|
|
|
8
6
|
import { Arrow as DefaultArrow } from './components/arrow';
|
|
9
7
|
import { BaseSelect } from './components/base-select';
|
|
@@ -12,16 +10,7 @@ import { Optgroup as DefaultOptgroup } from './components/optgroup';
|
|
|
12
10
|
import { Option as DefaultOption } from './components/option';
|
|
13
11
|
import { OptionsList as DefaultOptionsList } from './components/options-list';
|
|
14
12
|
import { Search as DefaultSearch } from './components/search';
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
export type SelectFieldProps = Omit<FormControlDesktopProps, 'size'> & Record<string, unknown>;
|
|
18
|
-
|
|
19
|
-
export type SelectDesktopProps = Omit<BaseSelectProps, 'fieldProps'> & {
|
|
20
|
-
/**
|
|
21
|
-
* Пропсы, которые будут прокинуты в компонент поля
|
|
22
|
-
*/
|
|
23
|
-
fieldProps?: SelectFieldProps;
|
|
24
|
-
};
|
|
13
|
+
import { SelectDesktopProps } from './typings';
|
|
25
14
|
|
|
26
15
|
export const SelectDesktop = forwardRef<HTMLDivElement, SelectDesktopProps>(
|
|
27
16
|
(
|
|
@@ -39,6 +28,7 @@ export const SelectDesktop = forwardRef<HTMLDivElement, SelectDesktopProps>(
|
|
|
39
28
|
) => (
|
|
40
29
|
<BaseSelect
|
|
41
30
|
ref={ref}
|
|
31
|
+
view='desktop'
|
|
42
32
|
Option={Option}
|
|
43
33
|
Field={Field}
|
|
44
34
|
fieldProps={{
|
|
@@ -49,6 +39,7 @@ export const SelectDesktop = forwardRef<HTMLDivElement, SelectDesktopProps>(
|
|
|
49
39
|
Optgroup={Optgroup}
|
|
50
40
|
OptionsList={OptionsList}
|
|
51
41
|
Arrow={Arrow}
|
|
42
|
+
Popover={Popover}
|
|
52
43
|
{...restProps}
|
|
53
44
|
/>
|
|
54
45
|
),
|
package/src/Component.mobile.tsx
CHANGED
|
@@ -1,62 +1,26 @@
|
|
|
1
|
-
import React, { forwardRef
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { BottomSheet } from '@alfalab/core-components-bottom-sheet';
|
|
4
4
|
import { FormControlMobile } from '@alfalab/core-components-form-control/mobile';
|
|
5
|
+
import { ModalMobile } from '@alfalab/core-components-modal/Component.mobile';
|
|
5
6
|
|
|
6
7
|
import { Arrow as DefaultArrow } from './components/arrow';
|
|
7
|
-
import {
|
|
8
|
-
import { Footer } from './components/base-select-mobile/footer';
|
|
8
|
+
import { BaseSelect } from './components/base-select';
|
|
9
9
|
import { Field as DefaultField } from './components/field';
|
|
10
|
+
import { Footer } from './components/footer';
|
|
10
11
|
import { Optgroup as DefaultOptgroup } from './components/optgroup';
|
|
11
12
|
import { Option as DefaultOption } from './components/option';
|
|
12
13
|
import { OptionsList as DefaultOptionsList } from './components/options-list';
|
|
13
14
|
import { Search as DefaultSearch } from './components/search';
|
|
14
15
|
import { VirtualOptionsList as DefaultVirtualOptionsList } from './components/virtual-options-list';
|
|
15
|
-
import { useSelectWithApply
|
|
16
|
+
import { useSelectWithApply } from './presets/useSelectWithApply/hook';
|
|
16
17
|
import { Header } from './presets/useSelectWithApply/options-list-with-apply/header/Component';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
*/
|
|
24
|
-
footer?: ReactNode;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Будет ли свайпаться шторка
|
|
28
|
-
* @deprecated Используйте bottomSheetProps.swipeable
|
|
29
|
-
*/
|
|
30
|
-
swipeable?: boolean;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Дополнительные пропсы шторки
|
|
34
|
-
*/
|
|
35
|
-
bottomSheetProps?: Partial<BottomSheetProps>;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Показывать кнопку очистки
|
|
39
|
-
*/
|
|
40
|
-
showClear?: UseSelectWithApplyProps['showClear'];
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Показывать пункт "Выбрать все"
|
|
44
|
-
*/
|
|
45
|
-
showSelectAll?: UseSelectWithApplyProps['showSelectAll'];
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Показывать пункт "Выбрать все" в заголовке списка
|
|
49
|
-
*/
|
|
50
|
-
showHeaderWithSelectAll?: UseSelectWithApplyProps['showHeaderWithSelectAll'];
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Использовать ли хук useSelectWithApply
|
|
54
|
-
*/
|
|
55
|
-
useWithApplyHook?: boolean;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export type SelectMobileProps = Omit<BaseSelectProps, 'Checkmark' | 'onScroll'> &
|
|
59
|
-
AdditionalMobileProps;
|
|
18
|
+
import {
|
|
19
|
+
AnyObject,
|
|
20
|
+
BottomSheetSelectMobileProps,
|
|
21
|
+
ModalSelectMobileProps,
|
|
22
|
+
SelectMobileProps,
|
|
23
|
+
} from './typings';
|
|
60
24
|
|
|
61
25
|
const VIRTUAL_OPTIONS_LIST_THRESHOLD = 30;
|
|
62
26
|
|
|
@@ -82,12 +46,12 @@ export const SelectMobile = forwardRef(
|
|
|
82
46
|
Option = DefaultOption,
|
|
83
47
|
Search = DefaultSearch,
|
|
84
48
|
selected,
|
|
49
|
+
isBottomSheet = true,
|
|
85
50
|
options,
|
|
86
51
|
OptionsList = options.length > VIRTUAL_OPTIONS_LIST_THRESHOLD
|
|
87
52
|
? DefaultVirtualOptionsList
|
|
88
53
|
: DefaultOptionsList,
|
|
89
54
|
onChange,
|
|
90
|
-
bottomSheetProps,
|
|
91
55
|
showClear = true,
|
|
92
56
|
showSelectAll,
|
|
93
57
|
showHeaderWithSelectAll,
|
|
@@ -98,6 +62,9 @@ export const SelectMobile = forwardRef(
|
|
|
98
62
|
}: SelectMobileProps,
|
|
99
63
|
ref,
|
|
100
64
|
) => {
|
|
65
|
+
const typedRestBottomSheetProps = restProps as BottomSheetSelectMobileProps;
|
|
66
|
+
const typedRestModalProps = restProps as ModalSelectMobileProps;
|
|
67
|
+
|
|
101
68
|
const applyProps = useSelectWithApply({
|
|
102
69
|
optionsListProps: {
|
|
103
70
|
...(optionsListProps as AnyObject),
|
|
@@ -113,9 +80,14 @@ export const SelectMobile = forwardRef(
|
|
|
113
80
|
showSelectAll,
|
|
114
81
|
});
|
|
115
82
|
|
|
83
|
+
const bottomAddons = useWithApplyHook && showHeaderWithSelectAll && (
|
|
84
|
+
<Header {...applyProps.optionsListProps.headerProps} mobile={true} />
|
|
85
|
+
);
|
|
86
|
+
|
|
116
87
|
return (
|
|
117
|
-
<
|
|
88
|
+
<BaseSelect
|
|
118
89
|
ref={ref}
|
|
90
|
+
view='mobile'
|
|
119
91
|
autocomplete={autocomplete}
|
|
120
92
|
multiple={multiple}
|
|
121
93
|
allowUnselect={allowUnselect}
|
|
@@ -136,19 +108,28 @@ export const SelectMobile = forwardRef(
|
|
|
136
108
|
Optgroup={Optgroup}
|
|
137
109
|
Option={Option}
|
|
138
110
|
Search={Search}
|
|
139
|
-
isBottomSheet={
|
|
111
|
+
isBottomSheet={isBottomSheet}
|
|
140
112
|
options={options}
|
|
141
113
|
selected={selected}
|
|
142
114
|
onChange={onChange}
|
|
143
115
|
OptionsList={OptionsList}
|
|
144
116
|
showSearch={showSearch}
|
|
145
117
|
searchProps={searchProps}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
118
|
+
BottomSheet={BottomSheet}
|
|
119
|
+
ModalMobile={ModalMobile}
|
|
120
|
+
{...(isBottomSheet
|
|
121
|
+
? {
|
|
122
|
+
bottomSheetProps: {
|
|
123
|
+
bottomAddons,
|
|
124
|
+
...typedRestBottomSheetProps.bottomSheetProps,
|
|
125
|
+
},
|
|
126
|
+
}
|
|
127
|
+
: {
|
|
128
|
+
modalHeaderProps: {
|
|
129
|
+
bottomAddons,
|
|
130
|
+
...typedRestModalProps.modalHeaderProps,
|
|
131
|
+
},
|
|
132
|
+
})}
|
|
152
133
|
optionsListProps={optionsListProps}
|
|
153
134
|
{...restProps}
|
|
154
135
|
{...(useWithApplyHook && applyProps)}
|