@alfalab/core-components-input-autocomplete 9.3.26 → 9.4.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.
Files changed (161) hide show
  1. package/Component-3885b0d7.d.ts +1 -1
  2. package/Component-425c8522.d.ts +53 -0
  3. package/Component-5e1b8383.d.ts +5 -0
  4. package/Component-aed0af6e.d.ts +11 -0
  5. package/Component-b4e70cb0.d.ts +22 -0
  6. package/Component-bdb4c6b9.d.ts +8 -0
  7. package/Component-ebda875c.d.ts +101 -0
  8. package/Component-f12ee135.d.ts +71 -0
  9. package/Component.desktop.d.ts +1 -1
  10. package/Component.mobile-e81c389f.d.ts +38 -0
  11. package/Component.mobile.d.ts +1 -1
  12. package/Component.mobile.js +7 -8
  13. package/Component.modal.mobile.d.ts +123 -0
  14. package/Component.modal.mobile.js +77 -0
  15. package/Component.responsive.d.ts +2 -2
  16. package/Component.responsive.js +1 -0
  17. package/Context-bdb4c6b9.d.ts +4 -0
  18. package/ResponsiveContext-baf4875b.d.ts +5 -0
  19. package/autocomplete-field/Component.d.ts +1 -1
  20. package/autocomplete-field/Component.js +1 -1
  21. package/autocomplete-field/index.css +2 -2
  22. package/autocomplete-mobile-field/Component.d.ts +1 -1
  23. package/autocomplete-mobile-field/Component.js +1 -1
  24. package/autocomplete-mobile-field/index.css +8 -8
  25. package/consts-f777ba1a.d.ts +2 -0
  26. package/cssm/Component-3885b0d7.d.ts +1 -1
  27. package/cssm/Component-425c8522.d.ts +53 -0
  28. package/cssm/Component-5e1b8383.d.ts +5 -0
  29. package/cssm/Component-aed0af6e.d.ts +11 -0
  30. package/cssm/Component-b4e70cb0.d.ts +22 -0
  31. package/cssm/Component-bdb4c6b9.d.ts +8 -0
  32. package/cssm/Component-ebda875c.d.ts +101 -0
  33. package/cssm/Component-f12ee135.d.ts +71 -0
  34. package/cssm/Component.desktop.d.ts +1 -1
  35. package/cssm/Component.mobile-e81c389f.d.ts +38 -0
  36. package/cssm/Component.mobile.d.ts +1 -1
  37. package/cssm/Component.mobile.js +5 -4
  38. package/cssm/Component.modal.mobile.d.ts +123 -0
  39. package/cssm/Component.modal.mobile.js +79 -0
  40. package/cssm/Component.responsive.d.ts +2 -2
  41. package/cssm/Context-bdb4c6b9.d.ts +4 -0
  42. package/cssm/ResponsiveContext-baf4875b.d.ts +5 -0
  43. package/cssm/autocomplete-field/Component.d.ts +1 -1
  44. package/cssm/autocomplete-mobile-field/Component.d.ts +1 -1
  45. package/cssm/consts-f777ba1a.d.ts +2 -0
  46. package/cssm/hook-b4e70cb0.d.ts +73 -0
  47. package/cssm/index-136acbb1.d.ts +28 -0
  48. package/cssm/index-3e68f8db.d.ts +5 -0
  49. package/cssm/index-425c8522.d.ts +6 -0
  50. package/cssm/index-bdb4c6b9.d.ts +172 -0
  51. package/cssm/index-e81c389f.d.ts +3 -0
  52. package/cssm/index-ebda875c.d.ts +66 -48
  53. package/cssm/index-f12ee135.d.ts +7 -217
  54. package/cssm/mobile.d.ts +1 -0
  55. package/cssm/mobile.js +3 -0
  56. package/cssm/mobile.module.css +1 -1
  57. package/cssm/typings-5e1b8383.d.ts +550 -0
  58. package/cssm/typings-bdb4c6b9.d.ts +52 -0
  59. package/cssm/utils-5e1b8383.d.ts +38 -0
  60. package/esm/Component-3885b0d7.d.ts +1 -1
  61. package/esm/Component-425c8522.d.ts +53 -0
  62. package/esm/Component-5e1b8383.d.ts +5 -0
  63. package/esm/Component-aed0af6e.d.ts +11 -0
  64. package/esm/Component-b4e70cb0.d.ts +22 -0
  65. package/esm/Component-bdb4c6b9.d.ts +12 -0
  66. package/esm/Component-ebda875c.d.ts +101 -0
  67. package/esm/Component-f12ee135.d.ts +71 -0
  68. package/esm/Component.desktop.d.ts +1 -1
  69. package/esm/Component.mobile-b2c0420d.d.ts +35 -0
  70. package/esm/Component.mobile.d.ts +1 -1
  71. package/esm/Component.mobile.js +6 -7
  72. package/esm/Component.modal.mobile.d.ts +123 -0
  73. package/esm/Component.modal.mobile.js +66 -0
  74. package/esm/Component.responsive.d.ts +2 -2
  75. package/esm/Component.responsive.js +1 -0
  76. package/esm/Context-bdb4c6b9.d.ts +4 -0
  77. package/esm/ResponsiveContext-baf4875b.d.ts +5 -0
  78. package/esm/autocomplete-field/Component.d.ts +1 -1
  79. package/esm/autocomplete-field/Component.js +1 -1
  80. package/esm/autocomplete-field/index.css +2 -2
  81. package/esm/autocomplete-mobile-field/Component.d.ts +1 -1
  82. package/esm/autocomplete-mobile-field/Component.js +1 -1
  83. package/esm/autocomplete-mobile-field/index.css +8 -8
  84. package/esm/consts-f777ba1a.d.ts +2 -0
  85. package/esm/hook-b4e70cb0.d.ts +73 -0
  86. package/esm/index-136acbb1.d.ts +28 -0
  87. package/esm/index-3e68f8db.d.ts +5 -0
  88. package/esm/index-425c8522.d.ts +6 -0
  89. package/esm/index-bdb4c6b9.d.ts +172 -0
  90. package/esm/index-e81c389f.d.ts +3 -0
  91. package/esm/index-ebda875c.d.ts +66 -48
  92. package/esm/index-f12ee135.d.ts +7 -217
  93. package/esm/index.js +1 -0
  94. package/esm/mobile.css +4 -4
  95. package/esm/mobile.d.ts +1 -0
  96. package/esm/mobile.js +3 -0
  97. package/esm/mobile.module-bad1a093.js +4 -0
  98. package/esm/responsive.js +1 -0
  99. package/esm/typings-5e1b8383.d.ts +550 -0
  100. package/esm/typings-bdb4c6b9.d.ts +52 -0
  101. package/esm/utils-5e1b8383.d.ts +38 -0
  102. package/hook-b4e70cb0.d.ts +73 -0
  103. package/index-136acbb1.d.ts +28 -0
  104. package/index-3e68f8db.d.ts +5 -0
  105. package/index-425c8522.d.ts +6 -0
  106. package/index-bdb4c6b9.d.ts +172 -0
  107. package/index-e81c389f.d.ts +3 -0
  108. package/index-ebda875c.d.ts +66 -48
  109. package/index-f12ee135.d.ts +7 -217
  110. package/index.js +1 -0
  111. package/mobile.css +4 -4
  112. package/mobile.d.ts +1 -0
  113. package/mobile.js +4 -0
  114. package/mobile.module-22ee5ba9.js +6 -0
  115. package/modern/Component-3885b0d7.d.ts +1 -1
  116. package/modern/Component-425c8522.d.ts +53 -0
  117. package/modern/Component-5e1b8383.d.ts +5 -0
  118. package/modern/Component-aed0af6e.d.ts +11 -0
  119. package/modern/Component-b4e70cb0.d.ts +22 -0
  120. package/modern/Component-bdb4c6b9.d.ts +8 -0
  121. package/modern/Component-ebda875c.d.ts +101 -0
  122. package/modern/Component-f12ee135.d.ts +71 -0
  123. package/modern/Component.desktop.d.ts +1 -1
  124. package/modern/Component.mobile-e81c389f.d.ts +38 -0
  125. package/modern/Component.mobile.d.ts +1 -1
  126. package/modern/Component.mobile.js +6 -8
  127. package/modern/Component.modal.mobile.d.ts +123 -0
  128. package/modern/Component.modal.mobile.js +73 -0
  129. package/modern/Component.responsive.d.ts +2 -2
  130. package/modern/Component.responsive.js +1 -0
  131. package/modern/Context-bdb4c6b9.d.ts +4 -0
  132. package/modern/ResponsiveContext-baf4875b.d.ts +5 -0
  133. package/modern/autocomplete-field/Component.d.ts +1 -1
  134. package/modern/autocomplete-field/Component.js +1 -1
  135. package/modern/autocomplete-field/index.css +2 -2
  136. package/modern/autocomplete-mobile-field/Component.d.ts +1 -1
  137. package/modern/autocomplete-mobile-field/Component.js +1 -1
  138. package/modern/autocomplete-mobile-field/index.css +8 -8
  139. package/modern/consts-f777ba1a.d.ts +2 -0
  140. package/modern/hook-b4e70cb0.d.ts +73 -0
  141. package/modern/index-136acbb1.d.ts +28 -0
  142. package/modern/index-3e68f8db.d.ts +5 -0
  143. package/modern/index-425c8522.d.ts +6 -0
  144. package/modern/index-bdb4c6b9.d.ts +172 -0
  145. package/modern/index-e81c389f.d.ts +3 -0
  146. package/modern/index-ebda875c.d.ts +66 -48
  147. package/modern/index-f12ee135.d.ts +7 -217
  148. package/modern/index.js +1 -0
  149. package/modern/mobile.css +4 -4
  150. package/modern/mobile.d.ts +1 -0
  151. package/modern/mobile.js +3 -0
  152. package/modern/mobile.module-32ab5262.js +4 -0
  153. package/modern/responsive.js +1 -0
  154. package/modern/typings-5e1b8383.d.ts +550 -0
  155. package/modern/typings-bdb4c6b9.d.ts +52 -0
  156. package/modern/utils-5e1b8383.d.ts +38 -0
  157. package/package.json +5 -5
  158. package/responsive.js +1 -0
  159. package/typings-5e1b8383.d.ts +550 -0
  160. package/typings-bdb4c6b9.d.ts +52 -0
  161. package/utils-5e1b8383.d.ts +38 -0
@@ -51,7 +51,7 @@ type TextElementType = HTMLParagraphElement | HTMLSpanElement | HTMLDivElement;
51
51
  type NativeProps = HTMLAttributes<HTMLSpanElement>;
52
52
  type TextBaseProps = {
53
53
  /**
54
- * [Вариант начертания](https://core-ds.github.io/core-components/master/?path=/docs/guidelines-typography--page)
54
+ * [Вариант начертания](https://core-ds.github.io/core-components/master/?path=/docs/tokens-assets-типографика--docs)
55
55
  */
56
56
  view?: "primary-large" | "primary-medium" | "primary-small" | "secondary-large" | "secondary-medium" | "secondary-small" | "component" | "caps";
57
57
  /**
@@ -0,0 +1,53 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { BackgroundColorType, GraphicColorType } from "./index-425c8522";
4
+ type IconColorType = Extract<GraphicColorType, 'positive' | 'attention' | 'link' | 'negative' | 'tertiary' | 'secondary' | 'primary'>;
5
+ type BadgeProps = {
6
+ /**
7
+ * Дополнительный класс
8
+ */
9
+ className?: string;
10
+ /**
11
+ * Вид компонента
12
+ */
13
+ view: 'icon' | 'count';
14
+ /**
15
+ * Размер компонента (только для view=icon)
16
+ * //deprecated(используйте height для view=count )
17
+ */
18
+ size?: 's' | 'm' | 'l' | 'xl';
19
+ /**
20
+ * Видимость белой обводки вокруг иконки
21
+ */
22
+ visibleIconOutline?: boolean;
23
+ /**
24
+ * Видимость цветной обводки вокруг иконки (только для view=icon)
25
+ */
26
+ visibleColorOutline?: boolean;
27
+ /**
28
+ * Контент компонента
29
+ */
30
+ content?: React.ReactElement | number;
31
+ /**
32
+ * Высота компонента, min = 16; max = 48 (только для view=count)
33
+ */
34
+ height?: number;
35
+ /**
36
+ * Цветовое оформление бейджа при view='count'
37
+ */
38
+ color?: Extract<BackgroundColorType, 'accent' | 'primary' | 'specialbg-secondary-transparent'>;
39
+ /**
40
+ * Цветовое оформление бейджа при view='icon'
41
+ */
42
+ iconColor?: IconColorType;
43
+ /**
44
+ * Цвет подложки под иконкой
45
+ */
46
+ iconUnderlayColor?: Extract<GraphicColorType, 'primary' | 'static-light'>;
47
+ /**
48
+ * Идентификатор для систем автоматизированного тестирования
49
+ */
50
+ dataTestId?: string;
51
+ };
52
+ declare const Badge: ({ className, size, view, visibleIconOutline, visibleColorOutline, content, height, iconColor, color, iconUnderlayColor, dataTestId, }: BadgeProps) => JSX.Element;
53
+ export { IconColorType, BadgeProps, Badge };
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { OptionsListProps } from "./typings-5e1b8383";
4
+ declare const VirtualOptionsList: React.ForwardRefExoticComponent<OptionsListProps & React.RefAttributes<HTMLDivElement>>;
5
+ export { VirtualOptionsList };
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { CheckboxProps } from "./index-ebda875c";
4
+ type HeaderProps = {
5
+ checked?: boolean;
6
+ indeterminate?: boolean;
7
+ onChange?: CheckboxProps['onChange'];
8
+ mobile?: boolean;
9
+ };
10
+ declare const Header: React.FC<HeaderProps>;
11
+ export { HeaderProps, Header };
@@ -0,0 +1,22 @@
1
+ /// <reference types="react" />
2
+ import { OptionShape, OptionsListProps } from "./typings-5e1b8383";
3
+ import React from 'react';
4
+ import { HeaderProps } from "./Component-aed0af6e";
5
+ type FooterProps = {
6
+ handleClear?: () => void;
7
+ handleApply?: () => void;
8
+ showClear?: boolean;
9
+ selectedDraft?: OptionShape[];
10
+ };
11
+ declare const Footer: ({ handleApply, handleClear, showClear, selectedDraft }: FooterProps) => JSX.Element;
12
+ declare const OptionsListWithApply: React.ForwardRefExoticComponent<OptionsListProps & {
13
+ showClear?: boolean | undefined;
14
+ onClose?: (() => void) | undefined;
15
+ selectedDraft?: OptionShape[] | undefined;
16
+ OptionsList?: React.FC<OptionsListProps & React.RefAttributes<HTMLDivElement>> | undefined;
17
+ Footer?: React.FC<FooterProps> | undefined;
18
+ Header?: React.FC<HeaderProps> | undefined;
19
+ headerProps?: HeaderProps | undefined;
20
+ showHeaderWithSelectAll?: boolean | undefined;
21
+ } & React.RefAttributes<HTMLDivElement>>;
22
+ export { FooterProps, Footer, OptionsListWithApply };
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ type FooterProps = {
3
+ handleClear?: () => void;
4
+ handleApply?: () => void;
5
+ showClear?: boolean;
6
+ };
7
+ declare const Footer: ({ handleApply, handleClear, showClear }: FooterProps) => JSX.Element;
8
+ export { FooterProps, Footer };
@@ -0,0 +1,101 @@
1
+ /// <reference types="react-transition-group" />
2
+ /// <reference types="react" />
3
+ import React from 'react';
4
+ import { CSSProperties, MutableRefObject, ReactNode } from "react";
5
+ import { CSSTransitionProps } from 'react-transition-group/CSSTransition';
6
+ import { BasePlacement, VariationPlacement } from '@popperjs/core';
7
+ type RefElement = HTMLElement | null;
8
+ type Position = BasePlacement | VariationPlacement;
9
+ type PopoverProps = {
10
+ /**
11
+ * Управление состоянием поповера (открыт/закрыт)
12
+ */
13
+ open: boolean;
14
+ /**
15
+ * Элемент, относительного которого появляется поповер
16
+ */
17
+ anchorElement: RefElement;
18
+ /**
19
+ * Использовать ширину родительского элемента
20
+ */
21
+ useAnchorWidth?: boolean;
22
+ /**
23
+ * Позиционирование поповера
24
+ */
25
+ position?: Position;
26
+ /**
27
+ * Запрещает поповеру менять свою позицию.
28
+ * Например, если места снизу недостаточно,то он все равно будет показан снизу
29
+ */
30
+ preventFlip?: boolean;
31
+ /**
32
+ * Запрещает поповеру менять свою позицию, если он не влезает в видимую область.
33
+ */
34
+ preventOverflow?: boolean;
35
+ /**
36
+ * Позволяет поповеру подствраивать свою высоту под границы экрана, если из-за величины контента он выходит за рамки видимой области экрана
37
+ */
38
+ availableHeight?: boolean;
39
+ /**
40
+ * Если `true`, будет отрисована стрелочка
41
+ */
42
+ withArrow?: boolean;
43
+ /**
44
+ * Смещение поповера.
45
+ * Если позиционирование top, bottom, то [x, y].
46
+ * Если позиционирование left, right то [y, x].
47
+ */
48
+ offset?: [number, number];
49
+ /**
50
+ * Дополнительный класс для поповера
51
+ */
52
+ popperClassName?: string;
53
+ /**
54
+ * Дополнительный класс для стрелочки
55
+ */
56
+ arrowClassName?: string;
57
+ /**
58
+ * Функция, возвращающая контейнер, в который будет рендериться поповер
59
+ */
60
+ getPortalContainer?: () => HTMLElement;
61
+ /**
62
+ * CSSTransitionProps, прокидываются в компонент CSSTransitionProps.
63
+ */
64
+ transition?: CSSTransitionProps;
65
+ /**
66
+ * Выставляет кастомное свойство transition-duration
67
+ */
68
+ transitionDuration?: CSSProperties['transitionDuration'];
69
+ /**
70
+ * Рендерит компонент, обернутый в Transition
71
+ */
72
+ withTransition?: boolean;
73
+ /**
74
+ * Идентификатор для систем автоматизированного тестирования
75
+ */
76
+ dataTestId?: string;
77
+ /**
78
+ * Хранит функцию, с помощью которой можно обновить положение компонента
79
+ */
80
+ update?: MutableRefObject<() => void>;
81
+ /**
82
+ * Дополнительный класс
83
+ */
84
+ className?: string;
85
+ /**
86
+ * z-index компонента
87
+ */
88
+ zIndex?: number;
89
+ /**
90
+ * Если поповер не помещается в переданной позиции (position), он попробует открыться в другой позиции,
91
+ * по очереди для каждой позиции из этого списка.
92
+ * Если не передавать, то поповер открывается в противоположном направлении от переданного position.
93
+ */
94
+ fallbackPlacements?: Position[];
95
+ /**
96
+ * Контент
97
+ */
98
+ children?: ReactNode;
99
+ };
100
+ declare const Popover: React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLDivElement>>;
101
+ export { Position, PopoverProps, Popover };
@@ -0,0 +1,71 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { ReactNode } from "react";
4
+ import { BottomSheetProps } from "./index-f12ee135";
5
+ import { BaseSelectProps } from "./typings-5e1b8383";
6
+ type SelectMobileProps = Omit<BaseSelectProps, 'Checkmark' | 'onScroll'> & {
7
+ /**
8
+ * Футер
9
+ * @deprecated Используйте bottomSheetProps.actionButton
10
+ */
11
+ footer?: ReactNode;
12
+ /**
13
+ * Будет ли свайпаться шторка
14
+ * @deprecated Используйте bottomSheetProps.swipeable
15
+ */
16
+ swipeable?: boolean;
17
+ /**
18
+ * Отображать в BottomSheet
19
+ */
20
+ isBottomSheet?: boolean;
21
+ /**
22
+ * Дополнительные пропсы шторки
23
+ */
24
+ bottomSheetProps?: Partial<BottomSheetProps>;
25
+ /**
26
+ * Дополнительные пропсы модалки
27
+ */
28
+ modalProps?: Partial<React.ComponentProps<typeof ModalMobile>>;
29
+ /**
30
+ * Дополнительные пропсы шапки модалки
31
+ */
32
+ modalHeaderProps?: Partial<React.ComponentProps<typeof ModalMobile.Header>>;
33
+ /**
34
+ * Дополнительные пропсы футера модалки
35
+ */
36
+ modalFooterProps?: Partial<React.ComponentProps<typeof ModalMobile.Footer>>;
37
+ };
38
+ declare const BaseSelectMobile: React.ForwardRefExoticComponent<Omit<BaseSelectProps, "onScroll" | "Checkmark"> & {
39
+ /**
40
+ * Футер
41
+ * @deprecated Используйте bottomSheetProps.actionButton
42
+ */
43
+ footer?: ReactNode;
44
+ /**
45
+ * Будет ли свайпаться шторка
46
+ * @deprecated Используйте bottomSheetProps.swipeable
47
+ */
48
+ swipeable?: boolean | undefined;
49
+ /**
50
+ * Отображать в BottomSheet
51
+ */
52
+ isBottomSheet?: boolean | undefined;
53
+ /**
54
+ * Дополнительные пропсы шторки
55
+ */
56
+ bottomSheetProps?: Partial<BottomSheetProps> | undefined;
57
+ /**
58
+ * Дополнительные пропсы модалки
59
+ */
60
+ modalProps?: Partial<import("./typings-bdb4c6b9").ModalMobileProps & React.RefAttributes<HTMLDivElement>> | undefined;
61
+ /**
62
+ * Дополнительные пропсы шапки модалки
63
+ */
64
+ modalHeaderProps?: Partial<import("./Component.mobile-e81c389f").HeaderProps> | undefined;
65
+ /**
66
+ * Дополнительные пропсы футера модалки
67
+ */
68
+ modalFooterProps?: Partial<import("./Component.mobile-e81c389f").FooterProps> | undefined;
69
+ } & React.RefAttributes<unknown>>;
70
+ export * from "./Component.mobile-e81c389f";
71
+ export { SelectMobileProps, BaseSelectMobile };
@@ -2,7 +2,7 @@
2
2
  import React from 'react';
3
3
  import { ChangeEvent, FC, RefAttributes } from "react";
4
4
  import { InputProps } from "@alfalab/core-components-input";
5
- import { BaseSelectProps } from "@alfalab/core-components-select";
5
+ import { BaseSelectProps } from "./index-3e68f8db";
6
6
  type InputAutocompleteDesktopProps = Omit<BaseSelectProps, 'Field' | 'nativeSelect'> & {
7
7
  /**
8
8
  * Компонент ввода значения
@@ -0,0 +1,38 @@
1
+ /// <reference types="react" />
2
+ import React from "react";
3
+ import { FC, ReactNode } from "react";
4
+ import { NavigationBarProps } from "./index-e81c389f";
5
+ import { ContentProps, ModalMobileProps } from "./typings-bdb4c6b9";
6
+ type HeaderProps = Omit<NavigationBarProps, "size" | "view" | "parentRef">;
7
+ declare const Header: FC<HeaderProps>;
8
+ declare const Content: FC<ContentProps>;
9
+ type FooterProps = {
10
+ /**
11
+ * Контент футера
12
+ */
13
+ children?: ReactNode;
14
+ /**
15
+ * Дополнительный класс
16
+ */
17
+ className?: string;
18
+ /**
19
+ * Фиксирует футер
20
+ */
21
+ sticky?: boolean;
22
+ /**
23
+ * Выравнивание элементов футера
24
+ */
25
+ layout?: "start" | "center" | "space-between" | "column";
26
+ /**
27
+ * Отступы между элементами футера
28
+ */
29
+ gap?: 16 | 24 | 32;
30
+ };
31
+ declare const Footer: FC<FooterProps>;
32
+ declare const ModalMobile: React.ForwardRefExoticComponent<ModalMobileProps & React.RefAttributes<HTMLDivElement>> & {
33
+ Content: React.FC<import("./typings-bdb4c6b9").ContentProps>;
34
+ Header: React.FC<HeaderProps>;
35
+ Footer: React.FC<FooterProps>;
36
+ Closer: React.FC<import("./index-e81c389f").CloserProps>;
37
+ };
38
+ export { HeaderProps, Header, Content, FooterProps, Footer, ModalMobile };
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { ChangeEvent, ElementType } from "react";
4
4
  import { BottomSheetProps } from "./index-f12ee135";
5
5
  import { ButtonProps } from "@alfalab/core-components-button";
6
- import { BaseSelectChangePayload, BaseSelectProps } from "@alfalab/core-components-select";
6
+ import { BaseSelectChangePayload, BaseSelectProps } from "./index-3e68f8db";
7
7
  type InputAutocompleteMobileProps = Omit<BaseSelectProps, 'OptionsList' | 'Checkmark' | 'onScroll' | 'nativeSelect' | 'autocomplete' | 'valueRenderer'> & {
8
8
  /**
9
9
  * Обработчик выбора
@@ -11,6 +11,7 @@ var coreComponentsButton = require('@alfalab/core-components-button');
11
11
  var coreComponentsInput = require('@alfalab/core-components-input');
12
12
  var coreComponentsSelect = require('@alfalab/core-components-select');
13
13
  var autocompleteMobileField_Component = require('./autocomplete-mobile-field/Component.js');
14
+ var mobile_module = require('./mobile.module-22ee5ba9.js');
14
15
  require('@alfalab/core-components-form-control');
15
16
  require('@alfalab/hooks');
16
17
 
@@ -21,9 +22,6 @@ var mergeRefs__default = /*#__PURE__*/_interopDefaultCompat(mergeRefs);
21
22
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
22
23
  var throttle__default = /*#__PURE__*/_interopDefaultCompat(throttle);
23
24
 
24
- var styles = {"bottomSheetInput":"input-autocomplete__bottomSheetInput_8stne","footer":"input-autocomplete__footer_8stne"};
25
- require('./mobile.css')
26
-
27
25
  var SELECTED = [];
28
26
  var InputAutocompleteMobile = React__default.default.forwardRef(function (_a, ref) {
29
27
  var Input = _a.Input, _b = _a.bottomSheetProps, bottomSheetProps = _b === void 0 ? {} : _b, _c = _a.bottomSheetHeaderAddonsProps, bottomSheetHeaderAddonsProps = _c === void 0 ? {} : _c, _d = _a.value, value = _d === void 0 ? '' : _d, _e = _a.filter, filter = _e === void 0 ? '' : _e, name = _a.name, _f = _a.Arrow, Arrow = _f === void 0 ? null : _f, label = _a.label, placeholder = _a.placeholder, _g = _a.size, size = _g === void 0 ? 's' : _g, openProp = _a.open, onFilter = _a.onFilter, onChange = _a.onChange, onOpen = _a.onOpen, onCancel = _a.onCancel, onClearFilter = _a.onClearFilter, continueButtonProps = _a.continueButtonProps, cancelButtonProps = _a.cancelButtonProps, selected = _a.selected, multiple = _a.multiple, restProps = tslib.__rest(_a, ["Input", "bottomSheetProps", "bottomSheetHeaderAddonsProps", "value", "filter", "name", "Arrow", "label", "placeholder", "size", "open", "onFilter", "onChange", "onOpen", "onCancel", "onClearFilter", "continueButtonProps", "cancelButtonProps", "selected", "multiple"]);
@@ -54,10 +52,11 @@ var InputAutocompleteMobile = React__default.default.forwardRef(function (_a, re
54
52
  onChange(filter);
55
53
  };
56
54
  var handleChange = function (payload) {
55
+ var _a;
57
56
  onChange(payload);
58
57
  if (multiple) {
59
58
  // После выбора опции возвращаем фокус в поле ввода.
60
- requestAnimationFrame(function () { var _a; return (_a = bottomSheetInputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });
59
+ (_a = bottomSheetInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
61
60
  }
62
61
  };
63
62
  var handleCancel = function () {
@@ -77,14 +76,14 @@ var InputAutocompleteMobile = React__default.default.forwardRef(function (_a, re
77
76
  };
78
77
  var getBottomSheetProps = function () {
79
78
  var Component = Input || coreComponentsInput.Input;
80
- return tslib.__assign(tslib.__assign({ actionButton: (React__default.default.createElement("div", { className: styles.footer },
81
- React__default.default.createElement(coreComponentsButton.Button, tslib.__assign({ block: true, view: 'primary', size: 's', onClick: handleApply }, continueButtonProps), "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C"),
82
- React__default.default.createElement(coreComponentsButton.Button, tslib.__assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"))), title: label || placeholder, bottomAddons: (React__default.default.createElement(Component, tslib.__assign({ block: true, clear: !!onClearFilter, onClear: onClearFilter, value: filter, onInput: onFilter, placeholder: placeholder, onFocus: handleInputFocus }, bottomSheetHeaderAddonsProps, { className: cn__default.default(styles.bottomSheetInput, bottomSheetHeaderAddonsProps.className), ref: mergeRefs__default.default([
79
+ return tslib.__assign(tslib.__assign({ actionButton: (React__default.default.createElement("div", { className: mobile_module.styles.footer },
80
+ React__default.default.createElement(coreComponentsButton.Button, tslib.__assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"),
81
+ React__default.default.createElement(coreComponentsButton.Button, tslib.__assign({ block: true, view: 'primary', size: 's', onClick: handleApply }, continueButtonProps), "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C"))), title: label || placeholder, bottomAddons: (React__default.default.createElement(Component, tslib.__assign({ block: true, clear: !!onClearFilter, onClear: onClearFilter, value: filter, onInput: onFilter, placeholder: placeholder, onFocus: handleInputFocus }, bottomSheetHeaderAddonsProps, { className: cn__default.default(mobile_module.styles.bottomAddonInput, bottomSheetHeaderAddonsProps.className), ref: mergeRefs__default.default([
83
82
  bottomSheetInputRef,
84
83
  bottomSheetHeaderAddonsProps.ref,
85
84
  ]) }))), initialHeight: 'full' }, bottomSheetProps), { containerProps: tslib.__assign({ onTouchMove: handleOptionsListTouchMove }, bottomSheetProps.containerProps) });
86
85
  };
87
- return (React__default.default.createElement(coreComponentsSelect.SelectMobile, tslib.__assign({ ref: mergeRefs__default.default([targetRef, ref]), selected: selected || SELECTED, open: Boolean(open || openProp), onOpen: handleOpen, onChange: handleChange, Arrow: Arrow, Field: autocompleteMobileField_Component.AutocompleteMobileField, fieldProps: { value: value }, placeholder: placeholder, label: label, size: size, name: name, multiple: multiple, bottomSheetProps: getBottomSheetProps(), optionsListProps: { showFooter: false } }, restProps)));
86
+ return (React__default.default.createElement(coreComponentsSelect.SelectMobile, tslib.__assign({ ref: mergeRefs__default.default([targetRef, ref]), selected: selected || SELECTED, open: Boolean(open || openProp), onOpen: handleOpen, onChange: handleChange, Arrow: Arrow, Field: autocompleteMobileField_Component.AutocompleteMobileField, fieldProps: { value: value }, placeholder: placeholder, label: label, size: size, name: name, multiple: multiple, useWithApplyHook: false, bottomSheetProps: getBottomSheetProps(), optionsListProps: { showFooter: false } }, restProps)));
88
87
  });
89
88
 
90
89
  exports.InputAutocompleteMobile = InputAutocompleteMobile;
@@ -0,0 +1,123 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { ChangeEvent, ElementType } from "react";
4
+ import { ButtonProps } from "@alfalab/core-components-button";
5
+ import { BaseSelectChangePayload } from "./index-3e68f8db";
6
+ import { ModalMobile } from "./Component.mobile-e81c389f";
7
+ import { UseSelectWithApplyProps } from "./hook-b4e70cb0";
8
+ import { BaseSelectProps } from "./typings-5e1b8383";
9
+ type SelectModalMobileProps = Omit<BaseSelectProps, "Checkmark" | "onScroll"> & {
10
+ /**
11
+ * Показывать кнопку очистки
12
+ */
13
+ showClear?: UseSelectWithApplyProps["showClear"];
14
+ /**
15
+ * Показывать пункт "Выбрать все"
16
+ */
17
+ showSelectAll?: UseSelectWithApplyProps["showSelectAll"];
18
+ /**
19
+ * Дополнительные пропсы шапки модалки
20
+ */
21
+ modalHeaderProps?: Partial<React.ComponentProps<typeof ModalMobile.Header>>;
22
+ /**
23
+ * Дополнительные пропсы модалки
24
+ */
25
+ modalProps?: Partial<React.ComponentProps<typeof ModalMobile>>;
26
+ /**
27
+ * Дополнительные пропсы футера модалки
28
+ */
29
+ modalFooterProps?: Partial<React.ComponentProps<typeof ModalMobile.Footer>>;
30
+ /*
31
+ * Показывать пункт "Выбрать все" в заголовке списка
32
+ */
33
+ showHeaderWithSelectAll?: UseSelectWithApplyProps["showHeaderWithSelectAll"];
34
+ /**
35
+ * Использовать ли хук useSelectWithApply
36
+ */
37
+ useWithApplyHook?: boolean;
38
+ };
39
+ type InputAutocompleteModalMobileProps = Omit<SelectModalMobileProps, 'OptionsList' | 'Checkmark' | 'onScroll' | 'nativeSelect' | 'autocomplete' | 'valueRenderer'> & {
40
+ /**
41
+ * Обработчик выбора
42
+ */
43
+ onChange: (payload: string | BaseSelectChangePayload) => void;
44
+ /**
45
+ * Обработчик ввода фильтра.
46
+ */
47
+ onFilter: (event: ChangeEvent<HTMLInputElement>) => void;
48
+ /**
49
+ * Значение поля ввода
50
+ */
51
+ value?: string;
52
+ /**
53
+ * Значение фильтра.
54
+ */
55
+ filter?: string;
56
+ /**
57
+ * Обработчик нажатия на кнопку "Отмена".
58
+ */
59
+ onCancel?: () => void;
60
+ /**
61
+ * Обработчик нажатия на крестик в инпуте фильтра.
62
+ */
63
+ onClearFilter?: () => void;
64
+ /**
65
+ * Дополнительные пропсы на слот под заголовком
66
+ */
67
+ bottomAddonProps?: Record<string, unknown>;
68
+ /**
69
+ * Дополнительные пропсы на кнопку "продолжить"
70
+ */
71
+ continueButtonProps?: ButtonProps;
72
+ /**
73
+ * Дополнительные пропсы на кнопку "отмена"
74
+ */
75
+ cancelButtonProps?: ButtonProps;
76
+ /**
77
+ * Кастомный инпут
78
+ */
79
+ Input?: ElementType;
80
+ };
81
+ declare const InputAutocompleteModalMobile: React.ForwardRefExoticComponent<Omit<SelectModalMobileProps, "onScroll" | "valueRenderer" | "autocomplete" | "nativeSelect" | "OptionsList" | "Checkmark"> & {
82
+ /**
83
+ * Обработчик выбора
84
+ */
85
+ onChange: (payload: string | BaseSelectChangePayload) => void;
86
+ /**
87
+ * Обработчик ввода фильтра.
88
+ */
89
+ onFilter: (event: ChangeEvent<HTMLInputElement>) => void;
90
+ /**
91
+ * Значение поля ввода
92
+ */
93
+ value?: string | undefined;
94
+ /**
95
+ * Значение фильтра.
96
+ */
97
+ filter?: string | undefined;
98
+ /**
99
+ * Обработчик нажатия на кнопку "Отмена".
100
+ */
101
+ onCancel?: (() => void) | undefined;
102
+ /**
103
+ * Обработчик нажатия на крестик в инпуте фильтра.
104
+ */
105
+ onClearFilter?: (() => void) | undefined;
106
+ /**
107
+ * Дополнительные пропсы на слот под заголовком
108
+ */
109
+ bottomAddonProps?: Record<string, unknown> | undefined;
110
+ /**
111
+ * Дополнительные пропсы на кнопку "продолжить"
112
+ */
113
+ continueButtonProps?: ButtonProps | undefined;
114
+ /**
115
+ * Дополнительные пропсы на кнопку "отмена"
116
+ */
117
+ cancelButtonProps?: ButtonProps | undefined;
118
+ /**
119
+ * Кастомный инпут
120
+ */
121
+ Input?: React.ElementType<any> | undefined;
122
+ } & React.RefAttributes<HTMLDivElement>>;
123
+ export { InputAutocompleteModalMobileProps, InputAutocompleteModalMobile };
@@ -0,0 +1,77 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var mergeRefs = require('react-merge-refs');
8
+ var cn = require('classnames');
9
+ var throttle = require('lodash.throttle');
10
+ var coreComponentsButton = require('@alfalab/core-components-button');
11
+ var coreComponentsInput = require('@alfalab/core-components-input');
12
+ var mobile = require('@alfalab/core-components-select/mobile');
13
+ var autocompleteMobileField_Component = require('./autocomplete-mobile-field/Component.js');
14
+ var mobile_module = require('./mobile.module-22ee5ba9.js');
15
+ require('@alfalab/core-components-form-control');
16
+ require('@alfalab/hooks');
17
+
18
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
19
+
20
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
21
+ var mergeRefs__default = /*#__PURE__*/_interopDefaultCompat(mergeRefs);
22
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
23
+ var throttle__default = /*#__PURE__*/_interopDefaultCompat(throttle);
24
+
25
+ var InputAutocompleteModalMobile = React__default.default.forwardRef(function (_a, ref) {
26
+ var openProp = _a.open, onOpen = _a.onOpen, name = _a.name, _b = _a.size, size = _b === void 0 ? 's' : _b, _c = _a.Input, Input = _c === void 0 ? coreComponentsInput.Input : _c, _d = _a.Arrow, Arrow = _d === void 0 ? null : _d, onClearFilter = _a.onClearFilter, _e = _a.filter, filter = _e === void 0 ? '' : _e, onFilter = _a.onFilter, placeholder = _a.placeholder, bottomAddonProps = _a.bottomAddonProps, multiple = _a.multiple, onChange = _a.onChange, onCancel = _a.onCancel, value = _a.value, cancelButtonProps = _a.cancelButtonProps, continueButtonProps = _a.continueButtonProps, restProps = tslib.__rest(_a, ["open", "onOpen", "name", "size", "Input", "Arrow", "onClearFilter", "filter", "onFilter", "placeholder", "bottomAddonProps", "multiple", "onChange", "onCancel", "value", "cancelButtonProps", "continueButtonProps"]);
27
+ var _f = React__default.default.useState(false), open = _f[0], setOpen = _f[1];
28
+ var targetRef = React.useRef(null);
29
+ var modalScrollableRef = React.useRef(null);
30
+ var bottomAddonRef = React.useRef(null);
31
+ React.useEffect(function () {
32
+ var modalContentNode = modalScrollableRef.current;
33
+ var handleListTouchMove = throttle__default.default(function () {
34
+ var input = bottomAddonRef.current;
35
+ if (input && document.activeElement === input) {
36
+ input.blur();
37
+ }
38
+ }, 300);
39
+ modalContentNode === null || modalContentNode === void 0 ? void 0 : modalContentNode.addEventListener('touchmove', handleListTouchMove);
40
+ return function () { return modalContentNode === null || modalContentNode === void 0 ? void 0 : modalContentNode.removeEventListener('touchmove', handleListTouchMove); };
41
+ }, [open]);
42
+ var setOpenModalSelect = function (isOpen) {
43
+ if (openProp === undefined) {
44
+ setOpen(isOpen);
45
+ }
46
+ onOpen === null || onOpen === void 0 ? void 0 : onOpen({ open: isOpen, name: name });
47
+ };
48
+ var handleOpen = function (payload) {
49
+ setOpenModalSelect(Boolean(payload.open));
50
+ };
51
+ var handleApply = function () {
52
+ setOpenModalSelect(false);
53
+ onChange(filter);
54
+ };
55
+ var handleCancel = function () {
56
+ setOpenModalSelect(false);
57
+ onCancel === null || onCancel === void 0 ? void 0 : onCancel();
58
+ };
59
+ var handleChange = function (payload) {
60
+ var _a;
61
+ onChange(payload);
62
+ if (multiple) {
63
+ // После выбора опции возвращаем фокус в поле ввода.
64
+ (_a = bottomAddonRef.current) === null || _a === void 0 ? void 0 : _a.focus();
65
+ }
66
+ };
67
+ var renderBottomAddon = function () { return (React__default.default.createElement(Input, tslib.__assign({ block: true, clear: !!onClearFilter, onClear: onClearFilter, value: filter, onInput: onFilter, placeholder: placeholder }, bottomAddonProps, { className: cn__default.default(mobile_module.styles.bottomAddonInput, bottomAddonProps === null || bottomAddonProps === void 0 ? void 0 : bottomAddonProps.className), ref: mergeRefs__default.default([
68
+ bottomAddonRef,
69
+ bottomAddonProps === null || bottomAddonProps === void 0 ? void 0 : bottomAddonProps.ref,
70
+ ]) }))); };
71
+ var renderFooter = function () { return (React__default.default.createElement(React__default.default.Fragment, null,
72
+ React__default.default.createElement(coreComponentsButton.Button, tslib.__assign({ block: true, view: 'primary', size: 's', onClick: handleApply }, continueButtonProps), "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C"),
73
+ React__default.default.createElement(coreComponentsButton.Button, tslib.__assign({ block: true, view: 'secondary', size: 's', onClick: handleCancel }, cancelButtonProps), "\u041E\u0442\u043C\u0435\u043D\u0430"))); };
74
+ return (React__default.default.createElement(mobile.SelectModalMobile, tslib.__assign({}, restProps, { ref: mergeRefs__default.default([ref, targetRef]), name: name, Field: autocompleteMobileField_Component.AutocompleteMobileField, Arrow: Arrow, onOpen: handleOpen, onChange: handleChange, multiple: multiple, open: openProp !== null && openProp !== void 0 ? openProp : open, size: size, fieldProps: { value: value }, placeholder: placeholder, useWithApplyHook: false, modalProps: tslib.__assign(tslib.__assign({}, restProps.modalProps), { componentRef: modalScrollableRef }), modalHeaderProps: tslib.__assign(tslib.__assign({}, restProps.modalHeaderProps), { bottomAddons: renderBottomAddon() }), modalFooterProps: tslib.__assign(tslib.__assign({ sticky: true }, restProps.modalFooterProps), { children: renderFooter() }) })));
75
+ });
76
+
77
+ exports.InputAutocompleteModalMobile = InputAutocompleteModalMobile;
@@ -2,7 +2,7 @@
2
2
  import React from 'react';
3
3
  import { BottomSheetProps } from "./index-f12ee135";
4
4
  import { ButtonProps } from "@alfalab/core-components-button";
5
- import { BaseSelectProps } from "@alfalab/core-components-select";
5
+ import { BaseSelectProps } from "./index-3e68f8db";
6
6
  import { InputAutocompleteDesktopProps } from "./Component.desktop";
7
7
  import { InputAutocompleteMobileProps } from "./Component.mobile";
8
8
  type InputAutocompleteResponsiveProps = InputAutocompleteDesktopProps & InputAutocompleteMobileProps & {
@@ -86,7 +86,7 @@ declare const InputAutocompleteResponsive: React.ForwardRefExoticComponent<Omit<
86
86
  onInput?: ((event: React.ChangeEvent<HTMLInputElement>) => void) | undefined;
87
87
  updatePopover?: React.MutableRefObject<() => void> | undefined;
88
88
  } & Omit<BaseSelectProps, "onScroll" | "valueRenderer" | "autocomplete" | "nativeSelect" | "OptionsList" | "Checkmark"> & {
89
- onChange: (payload: string | import("@alfalab/core-components-select").BaseSelectChangePayload) => void;
89
+ onChange: (payload: string | import("./index-3e68f8db").BaseSelectChangePayload) => void;
90
90
  onFilter: (event: React.ChangeEvent<HTMLInputElement>) => void;
91
91
  value?: string | undefined;
92
92
  filter?: string | undefined;
@@ -16,6 +16,7 @@ require('lodash.throttle');
16
16
  require('@alfalab/core-components-button');
17
17
  require('./autocomplete-mobile-field/Component.js');
18
18
  require('@alfalab/core-components-form-control');
19
+ require('./mobile.module-22ee5ba9.js');
19
20
 
20
21
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
21
22
 
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { BaseModalContext } from "./index-bdb4c6b9";
3
+ declare const ModalContext: import("react").Context<BaseModalContext>;
4
+ export { ModalContext };
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { TResponsiveModalContext } from "./typings-bdb4c6b9";
4
+ declare const ResponsiveContext: React.Context<TResponsiveModalContext>;
5
+ export { ResponsiveContext };