@alfalab/core-components-select 19.1.10 → 19.2.0

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 (251) hide show
  1. package/components/arrow/index.css +4 -4
  2. package/components/arrow/index.module.css.js +1 -1
  3. package/components/base-checkmark/index.css +9 -9
  4. package/components/base-checkmark/index.module.css.js +1 -1
  5. package/components/base-option/index.css +14 -14
  6. package/components/base-option/index.module.css.js +1 -1
  7. package/components/base-select/Component.js +36 -49
  8. package/components/base-select/Component.js.map +1 -1
  9. package/components/base-select/index.css +70 -20
  10. package/components/base-select/index.module.css.js +1 -1
  11. package/components/base-select/index.module.css.js.map +1 -1
  12. package/components/base-select/mobile.css +12 -11
  13. package/components/base-select/mobile.module.css.js +1 -1
  14. package/components/base-select/mobile.module.css.js.map +1 -1
  15. package/components/checkmark/index.css +11 -11
  16. package/components/checkmark/index.module.css.js +1 -1
  17. package/components/checkmark-mobile/index.css +6 -6
  18. package/components/checkmark-mobile/index.module.css.js +1 -1
  19. package/components/clear-button/index.css +4 -4
  20. package/components/clear-button/index.module.css.js +1 -1
  21. package/components/field/index.css +13 -13
  22. package/components/field/index.module.css.js +1 -1
  23. package/components/footer/index.css +4 -4
  24. package/components/footer/index.module.css.js +1 -1
  25. package/components/optgroup/index.css +4 -4
  26. package/components/optgroup/index.module.css.js +1 -1
  27. package/components/option/desktop/index.css +23 -19
  28. package/components/option/desktop/index.module.css.js +1 -1
  29. package/components/option/desktop/index.module.css.js.map +1 -1
  30. package/components/option/mobile/index.css +20 -16
  31. package/components/option/mobile/index.module.css.js +1 -1
  32. package/components/option/mobile/index.module.css.js.map +1 -1
  33. package/components/options-list/Component.d.ts +4 -0
  34. package/components/options-list/Component.js +32 -53
  35. package/components/options-list/Component.js.map +1 -1
  36. package/components/options-list/index.css +13 -33
  37. package/components/options-list/index.module.css.js +1 -1
  38. package/components/options-list/index.module.css.js.map +1 -1
  39. package/components/search/index.css +1 -1
  40. package/components/search/index.module.css.js +1 -1
  41. package/components/virtual-options-list/Component.d.ts +4 -0
  42. package/components/virtual-options-list/Component.js +61 -48
  43. package/components/virtual-options-list/Component.js.map +1 -1
  44. package/cssm/components/base-select/Component.js +36 -49
  45. package/cssm/components/base-select/Component.js.map +1 -1
  46. package/cssm/components/base-select/index.module.css +61 -11
  47. package/cssm/components/base-select/mobile.module.css +1 -0
  48. package/cssm/components/option/desktop/index.module.css +4 -0
  49. package/cssm/components/option/mobile/index.module.css +4 -0
  50. package/cssm/components/options-list/Component.d.ts +4 -0
  51. package/cssm/components/options-list/Component.js +32 -53
  52. package/cssm/components/options-list/Component.js.map +1 -1
  53. package/cssm/components/options-list/index.module.css +6 -26
  54. package/cssm/components/virtual-options-list/Component.d.ts +4 -0
  55. package/cssm/components/virtual-options-list/Component.js +61 -48
  56. package/cssm/components/virtual-options-list/Component.js.map +1 -1
  57. package/cssm/presets/useSelectWithApply/hook.d.ts +12 -0
  58. package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  59. package/cssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +0 -5
  60. package/cssm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +9 -6
  61. package/cssm/shared/index.js +0 -1
  62. package/cssm/shared/index.js.map +1 -1
  63. package/cssm/typings.d.ts +21 -1
  64. package/cssm/utils.d.ts +1 -6
  65. package/cssm/utils.js +19 -28
  66. package/cssm/utils.js.map +1 -1
  67. package/esm/components/arrow/index.css +4 -4
  68. package/esm/components/arrow/index.module.css.js +1 -1
  69. package/esm/components/base-checkmark/index.css +9 -9
  70. package/esm/components/base-checkmark/index.module.css.js +1 -1
  71. package/esm/components/base-option/index.css +14 -14
  72. package/esm/components/base-option/index.module.css.js +1 -1
  73. package/esm/components/base-select/Component.js +37 -50
  74. package/esm/components/base-select/Component.js.map +1 -1
  75. package/esm/components/base-select/index.css +70 -20
  76. package/esm/components/base-select/index.module.css.js +1 -1
  77. package/esm/components/base-select/index.module.css.js.map +1 -1
  78. package/esm/components/base-select/mobile.css +12 -11
  79. package/esm/components/base-select/mobile.module.css.js +1 -1
  80. package/esm/components/base-select/mobile.module.css.js.map +1 -1
  81. package/esm/components/checkmark/index.css +11 -11
  82. package/esm/components/checkmark/index.module.css.js +1 -1
  83. package/esm/components/checkmark-mobile/index.css +6 -6
  84. package/esm/components/checkmark-mobile/index.module.css.js +1 -1
  85. package/esm/components/clear-button/index.css +4 -4
  86. package/esm/components/clear-button/index.module.css.js +1 -1
  87. package/esm/components/field/index.css +13 -13
  88. package/esm/components/field/index.module.css.js +1 -1
  89. package/esm/components/footer/index.css +4 -4
  90. package/esm/components/footer/index.module.css.js +1 -1
  91. package/esm/components/optgroup/index.css +4 -4
  92. package/esm/components/optgroup/index.module.css.js +1 -1
  93. package/esm/components/option/desktop/index.css +23 -19
  94. package/esm/components/option/desktop/index.module.css.js +1 -1
  95. package/esm/components/option/desktop/index.module.css.js.map +1 -1
  96. package/esm/components/option/mobile/index.css +20 -16
  97. package/esm/components/option/mobile/index.module.css.js +1 -1
  98. package/esm/components/option/mobile/index.module.css.js.map +1 -1
  99. package/esm/components/options-list/Component.d.ts +4 -0
  100. package/esm/components/options-list/Component.js +33 -54
  101. package/esm/components/options-list/Component.js.map +1 -1
  102. package/esm/components/options-list/index.css +13 -33
  103. package/esm/components/options-list/index.module.css.js +1 -1
  104. package/esm/components/options-list/index.module.css.js.map +1 -1
  105. package/esm/components/search/index.css +1 -1
  106. package/esm/components/search/index.module.css.js +1 -1
  107. package/esm/components/virtual-options-list/Component.d.ts +4 -0
  108. package/esm/components/virtual-options-list/Component.js +63 -49
  109. package/esm/components/virtual-options-list/Component.js.map +1 -1
  110. package/esm/mobile/modal.mobile.css +1 -1
  111. package/esm/mobile/modal.mobile.module.css.js +1 -1
  112. package/esm/presets/useSelectWithApply/hook.d.ts +12 -0
  113. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  114. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +2 -7
  115. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  116. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js.map +1 -1
  117. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +12 -9
  118. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  119. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js.map +1 -1
  120. package/esm/presets/useSelectWithLoading/index.css +1 -1
  121. package/esm/presets/useSelectWithLoading/index.module.css.js +1 -1
  122. package/esm/shared/index.js +1 -1
  123. package/esm/typings.d.ts +21 -1
  124. package/esm/utils.d.ts +1 -6
  125. package/esm/utils.js +21 -29
  126. package/esm/utils.js.map +1 -1
  127. package/mobile/modal.mobile.css +1 -1
  128. package/mobile/modal.mobile.module.css.js +1 -1
  129. package/modern/components/arrow/index.css +4 -4
  130. package/modern/components/arrow/index.module.css.js +1 -1
  131. package/modern/components/base-checkmark/index.css +9 -9
  132. package/modern/components/base-checkmark/index.module.css.js +1 -1
  133. package/modern/components/base-option/index.css +14 -14
  134. package/modern/components/base-option/index.module.css.js +1 -1
  135. package/modern/components/base-select/Component.js +34 -47
  136. package/modern/components/base-select/Component.js.map +1 -1
  137. package/modern/components/base-select/index.css +70 -20
  138. package/modern/components/base-select/index.module.css.js +1 -1
  139. package/modern/components/base-select/index.module.css.js.map +1 -1
  140. package/modern/components/base-select/mobile.css +12 -11
  141. package/modern/components/base-select/mobile.module.css.js +1 -1
  142. package/modern/components/base-select/mobile.module.css.js.map +1 -1
  143. package/modern/components/checkmark/index.css +11 -11
  144. package/modern/components/checkmark/index.module.css.js +1 -1
  145. package/modern/components/checkmark-mobile/index.css +6 -6
  146. package/modern/components/checkmark-mobile/index.module.css.js +1 -1
  147. package/modern/components/clear-button/index.css +4 -4
  148. package/modern/components/clear-button/index.module.css.js +1 -1
  149. package/modern/components/field/index.css +13 -13
  150. package/modern/components/field/index.module.css.js +1 -1
  151. package/modern/components/footer/index.css +4 -4
  152. package/modern/components/footer/index.module.css.js +1 -1
  153. package/modern/components/optgroup/index.css +4 -4
  154. package/modern/components/optgroup/index.module.css.js +1 -1
  155. package/modern/components/option/desktop/index.css +23 -19
  156. package/modern/components/option/desktop/index.module.css.js +1 -1
  157. package/modern/components/option/desktop/index.module.css.js.map +1 -1
  158. package/modern/components/option/mobile/index.css +20 -16
  159. package/modern/components/option/mobile/index.module.css.js +1 -1
  160. package/modern/components/option/mobile/index.module.css.js.map +1 -1
  161. package/modern/components/options-list/Component.d.ts +4 -0
  162. package/modern/components/options-list/Component.js +29 -49
  163. package/modern/components/options-list/Component.js.map +1 -1
  164. package/modern/components/options-list/index.css +13 -33
  165. package/modern/components/options-list/index.module.css.js +1 -1
  166. package/modern/components/options-list/index.module.css.js.map +1 -1
  167. package/modern/components/search/index.css +1 -1
  168. package/modern/components/search/index.module.css.js +1 -1
  169. package/modern/components/virtual-options-list/Component.d.ts +4 -0
  170. package/modern/components/virtual-options-list/Component.js +59 -45
  171. package/modern/components/virtual-options-list/Component.js.map +1 -1
  172. package/modern/mobile/modal.mobile.css +1 -1
  173. package/modern/mobile/modal.mobile.module.css.js +1 -1
  174. package/modern/presets/useSelectWithApply/hook.d.ts +12 -0
  175. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  176. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +2 -7
  177. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  178. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js.map +1 -1
  179. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +12 -9
  180. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  181. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js.map +1 -1
  182. package/modern/presets/useSelectWithLoading/index.css +1 -1
  183. package/modern/presets/useSelectWithLoading/index.module.css.js +1 -1
  184. package/modern/shared/index.js +1 -1
  185. package/modern/typings.d.ts +21 -1
  186. package/modern/utils.d.ts +1 -6
  187. package/modern/utils.js +21 -29
  188. package/modern/utils.js.map +1 -1
  189. package/moderncssm/components/base-select/Component.js +34 -47
  190. package/moderncssm/components/base-select/Component.js.map +1 -1
  191. package/moderncssm/components/base-select/index.module.css +67 -9
  192. package/moderncssm/components/base-select/mobile.module.css +1 -0
  193. package/moderncssm/components/option/desktop/index.module.css +3 -0
  194. package/moderncssm/components/option/mobile/index.module.css +3 -0
  195. package/moderncssm/components/options-list/Component.d.ts +4 -0
  196. package/moderncssm/components/options-list/Component.js +29 -49
  197. package/moderncssm/components/options-list/Component.js.map +1 -1
  198. package/moderncssm/components/options-list/index.module.css +7 -32
  199. package/moderncssm/components/virtual-options-list/Component.d.ts +4 -0
  200. package/moderncssm/components/virtual-options-list/Component.js +59 -45
  201. package/moderncssm/components/virtual-options-list/Component.js.map +1 -1
  202. package/moderncssm/presets/useSelectWithApply/hook.d.ts +12 -0
  203. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  204. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +0 -4
  205. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +8 -6
  206. package/moderncssm/shared/index.js +1 -1
  207. package/moderncssm/typings.d.ts +21 -1
  208. package/moderncssm/utils.d.ts +1 -6
  209. package/moderncssm/utils.js +21 -29
  210. package/moderncssm/utils.js.map +1 -1
  211. package/package.json +13 -14
  212. package/presets/useSelectWithApply/hook.d.ts +12 -0
  213. package/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  214. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +2 -7
  215. package/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  216. package/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js.map +1 -1
  217. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +12 -9
  218. package/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  219. package/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js.map +1 -1
  220. package/presets/useSelectWithLoading/index.css +1 -1
  221. package/presets/useSelectWithLoading/index.module.css.js +1 -1
  222. package/shared/index.js +0 -1
  223. package/shared/index.js.map +1 -1
  224. package/src/components/base-select/Component.tsx +41 -55
  225. package/src/components/base-select/index.module.css +60 -8
  226. package/src/components/base-select/mobile.module.css +1 -0
  227. package/src/components/option/index.module.css +4 -0
  228. package/src/components/options-list/Component.tsx +54 -97
  229. package/src/components/options-list/index.module.css +7 -31
  230. package/src/components/virtual-options-list/Component.tsx +95 -72
  231. package/src/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +0 -4
  232. package/src/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +4 -4
  233. package/src/typings.ts +26 -0
  234. package/src/utils.ts +30 -34
  235. package/src/vars.css +3 -0
  236. package/typings.d.ts +21 -1
  237. package/utils.d.ts +1 -6
  238. package/utils.js +19 -28
  239. package/utils.js.map +1 -1
  240. package/components/virtual-options-list/index.css +0 -83
  241. package/components/virtual-options-list/index.module.css.js +0 -8
  242. package/components/virtual-options-list/index.module.css.js.map +0 -1
  243. package/cssm/components/virtual-options-list/index.module.css +0 -83
  244. package/esm/components/virtual-options-list/index.css +0 -83
  245. package/esm/components/virtual-options-list/index.module.css.js +0 -6
  246. package/esm/components/virtual-options-list/index.module.css.js.map +0 -1
  247. package/modern/components/virtual-options-list/index.css +0 -83
  248. package/modern/components/virtual-options-list/index.module.css.js +0 -6
  249. package/modern/components/virtual-options-list/index.module.css.js.map +0 -1
  250. package/moderncssm/components/virtual-options-list/index.module.css +0 -81
  251. package/src/components/virtual-options-list/index.module.css +0 -77
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"option":"select__option_psvdh","disabled":"select__disabled_psvdh","checkmarkBefore":"select__checkmarkBefore_psvdh","mobile":"select__mobile_psvdh","checkmarkAfter":"select__checkmarkAfter_psvdh","size-72":"select__size-72_psvdh","textContent":"select__textContent_psvdh","selected":"select__selected_psvdh","highlighted":"select__highlighted_psvdh","content":"select__content_psvdh"};
3
+ const styles = {"option":"select__option_1tmft","disabled":"select__disabled_1tmft","checkmarkBefore":"select__checkmarkBefore_1tmft","mobile":"select__mobile_1tmft","checkmarkAfter":"select__checkmarkAfter_1tmft","size-72":"select__size-72_1tmft","textContent":"select__textContent_1tmft","selected":"select__selected_1tmft","highlighted":"select__highlighted_1tmft","content":"select__content_1tmft"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1,11 +1,9 @@
1
1
  import React, { forwardRef, useRef, useMemo, useEffect, useCallback } from 'react';
2
2
  import mergeRefs from 'react-merge-refs';
3
- import { ResizeObserver } from '@juggle/resize-observer';
4
3
  import cn from 'classnames';
5
4
  import { compute } from 'compute-scroll-into-view';
6
5
  import { useMultipleSelection, useCombobox } from 'downshift';
7
- import { isClient, fnUtils, getDataTestId } from '@alfalab/core-components-shared/modern';
8
- import { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';
6
+ import { isClient, getDataTestId } from '@alfalab/core-components-shared/modern';
9
7
  import { defaultAccessor, defaultFilterFn, defaultGroupAccessor, processOptions, isGroup } from '../../utils.js';
10
8
  import { NativeSelect } from '../native-select/Component.js';
11
9
  import styles from './index.module.css.js';
@@ -20,13 +18,13 @@ const BaseSelect = forwardRef(
20
18
  (props, ref) => {
21
19
  const { dataTestId, className, fieldClassName, optionGroupClassName, optionsListClassName, optionClassName, popperClassName, options, autocomplete = false, multiple = false, allowUnselect = false, disabled = false, closeOnSelect = !multiple, circularNavigation = false, nativeSelect = false, defaultOpen = false, open: openProp, popoverPosition = 'bottom-start', preventFlip = true, optionsListWidth = 'content', name, id, selected, size = 48, optionsSize = size, error, hint, block, label, labelView, placeholder, fieldProps = {}, optionsListProps = {}, optionProps = {}, groupOptionProps = {}, searchProps = {}, showSearch = false, valueRenderer, onChange, onOpen, onFocus, onBlur, onScroll, onClear, clear, Arrow, Field = () => null, OptionsList = () => null, Optgroup = () => null, Option = () => null, Search = () => null, updatePopover, zIndexPopover, showEmptyOptionsList = false, visibleOptions, view, isBottomSheet = true, footer, swipeable, modalProps, popoverProps, modalFooterProps, modalHeaderProps, bottomSheetProps, Popover, ModalMobile, BottomSheet, limitDynamicOptionGroupSize, environment = isClient() ? window : undefined, } = props;
22
20
  const shouldSearchBlurRef = useRef(true);
23
- const rootRef = useRef(null);
24
21
  const fieldRef = useRef(null);
25
22
  const listRef = useRef(null);
26
23
  const initiatorRef = useRef(null);
27
24
  const searchRef = useRef(null);
28
25
  const scrollableContainerRef = useRef(null);
29
26
  const onOpenRef = useRef(onOpen);
27
+ const optionsListCtrlRef = useRef(null);
30
28
  const [searchState, setSearchState] = React.useState('');
31
29
  const [search, setSearch] = typeof searchProps?.value === 'string'
32
30
  ? [searchProps.value, searchProps.onChange]
@@ -46,17 +44,26 @@ const BaseSelect = forwardRef(
46
44
  const scrollIntoView = (node) => {
47
45
  if (!node || view === 'mobile')
48
46
  return;
49
- requestAnimationFrame(() => {
50
- const actions = compute(node, {
51
- boundary: listRef.current,
52
- block: 'nearest',
53
- scrollMode: 'if-needed',
54
- });
55
- actions.forEach((action) => {
56
- const { el, top } = action;
57
- el.scrollTop = top;
47
+ const optionsListCtrl = optionsListCtrlRef.current;
48
+ if (optionsListCtrl) {
49
+ const dataIndex = node.getAttribute('data-index');
50
+ if (dataIndex) {
51
+ optionsListCtrl.scrollToIndex(Number(dataIndex));
52
+ }
53
+ }
54
+ else {
55
+ requestAnimationFrame(() => {
56
+ const actions = compute(node, {
57
+ boundary: listRef.current,
58
+ block: 'nearest',
59
+ scrollMode: 'if-needed',
60
+ });
61
+ actions.forEach((action) => {
62
+ const { el, top } = action;
63
+ el.scrollTop = top;
64
+ });
58
65
  });
59
- });
66
+ }
60
67
  };
61
68
  const useMultipleSelectionProps = {
62
69
  itemToString,
@@ -262,6 +269,7 @@ const BaseSelect = forwardRef(
262
269
  ...optionProps,
263
270
  mobile: view === 'mobile',
264
271
  className: cn(optionClassName, {
272
+ [styles.option]: view === 'desktop',
265
273
  [mobileStyles.option]: view === 'mobile',
266
274
  }),
267
275
  innerProps: getItemProps({
@@ -276,6 +284,7 @@ const BaseSelect = forwardRef(
276
284
  shouldSearchBlurRef.current = true;
277
285
  fieldRef.current?.focus();
278
286
  },
287
+ 'data-index': index,
279
288
  }),
280
289
  multiple,
281
290
  index,
@@ -296,35 +305,6 @@ const BaseSelect = forwardRef(
296
305
  }
297
306
  // eslint-disable-next-line react-hooks/exhaustive-deps
298
307
  }, []);
299
- const calcOptionsListWidth = useCallback(() => {
300
- if (view === 'desktop' && listRef.current) {
301
- const widthAttr = optionsListWidth === 'field' ? 'width' : 'minWidth';
302
- const optionsListMinWidth = rootRef.current
303
- ? rootRef.current.getBoundingClientRect().width
304
- : 0;
305
- listRef.current.removeAttribute('style');
306
- listRef.current.style[widthAttr] = `${optionsListMinWidth}px`;
307
- }
308
- }, [view, optionsListWidth]);
309
- useEffect(() => {
310
- if (view === 'desktop') {
311
- const ResizeObserver$1 = window.ResizeObserver || ResizeObserver;
312
- const observer = new ResizeObserver$1(calcOptionsListWidth);
313
- if (rootRef.current) {
314
- observer.observe(rootRef.current);
315
- }
316
- return () => {
317
- observer.disconnect();
318
- };
319
- }
320
- return fnUtils.noop;
321
- }, [view, calcOptionsListWidth, open, optionsListWidth]);
322
- useLayoutEffect_SAFE_FOR_SSR(calcOptionsListWidth, [
323
- open,
324
- optionsListWidth,
325
- filteredOptions,
326
- selectedItems,
327
- ]);
328
308
  const renderValue = () => selectedItems.map((option) => (React.createElement("input", { type: 'hidden', name: name, value: option.key, key: option.key })));
329
309
  const renderNativeSelect = () => {
330
310
  const value = multiple
@@ -380,15 +360,22 @@ const BaseSelect = forwardRef(
380
360
  if (flatOptions.length === 0 && !showEmptyOptionsList && !showSearch)
381
361
  return null;
382
362
  const listProps = optionsListProps;
383
- return (React.createElement("div", { ...menuProps, ref: view === 'desktop' ? menuRef : undefined, className: cn(optionsListClassName, view === 'mobile' && mobileStyles.optionsListWrapper, view === 'desktop' && styles.optionsListWrapper) },
384
- React.createElement(OptionsList, { ...listProps, ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn({ [mobileStyles.optionsList]: view === 'mobile' }, listProps.className), scrollbarClassName: cn({ [mobileStyles.scrollbar]: view === 'mobile' }, listProps.scrollbarClassName), optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, groupOptionProps: groupOptionProps, getOptionProps: getOptionProps, visibleOptions: view === 'desktop' ? visibleOptions : 0, dataTestId: getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn(optionGroupClassName, {
363
+ return (React.createElement("div", { ...menuProps, ref: view === 'desktop' ? menuRef : undefined, className: cn(optionsListClassName, view === 'mobile' && mobileStyles.optionsListWrapper, view === 'desktop' && styles.optionsListWrapper, {
364
+ [styles.matchContent]: view === 'desktop' && optionsListWidth === 'content',
365
+ }) },
366
+ React.createElement(OptionsList, { ...listProps, ctrlRef: optionsListCtrlRef, ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn({
367
+ [mobileStyles.optionsList]: view === 'mobile',
368
+ }, listProps.className), scrollbarClassName: cn({
369
+ [styles.scrollbar]: view === 'desktop',
370
+ [mobileStyles.scrollbar]: view === 'mobile',
371
+ }, listProps.scrollbarClassName), scrollableNodeClassName: cn({ [styles.scrollable]: view === 'desktop' }), contentNodeClassName: cn({ [styles.content]: view === 'desktop' }), listNodeClassName: cn({ [styles.list]: view === 'desktop' }), optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, groupOptionProps: groupOptionProps, getOptionProps: getOptionProps, visibleOptions: view === 'desktop' ? visibleOptions : 0, dataTestId: getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn(optionGroupClassName, {
385
372
  [mobileStyles.optionGroup]: view === 'mobile',
386
373
  }), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search, multiple: multiple, limitDynamicOptionGroupSize: limitDynamicOptionGroupSize, client: view }),
387
374
  view === 'desktop' && React.createElement("div", { className: styles.optionsListBorder })));
388
375
  };
389
376
  const renderInPopover = () => {
390
377
  if (!nativeSelect && Popover) {
391
- return (React.createElement(Popover, { ...popoverProps, open: open, withTransition: false, anchorElement: fieldRef.current, position: popoverPosition, preventFlip: preventFlip, popperClassName: cn(styles.popoverInner, popperClassName), update: updatePopover, zIndex: zIndexPopover }, renderOptionsList()));
378
+ return (React.createElement(Popover, { ...popoverProps, open: open, withTransition: false, anchorElement: fieldRef.current, position: popoverPosition, preventFlip: preventFlip, popperClassName: cn(styles.popoverInner, popperClassName), update: updatePopover, zIndex: zIndexPopover, useAnchorWidth: true, widthProp: optionsListWidth === 'field' ? 'width' : 'minWidth' }, renderOptionsList()));
392
379
  }
393
380
  return null;
394
381
  };
@@ -438,7 +425,7 @@ const BaseSelect = forwardRef(
438
425
  }
439
426
  return null;
440
427
  };
441
- return (React.createElement("div", { ...(disabled && { 'aria-disabled': true }), "aria-expanded": inputProps['aria-expanded'], "aria-haspopup": 'listbox', role: inputProps.role, className: cn(styles.component, { [styles.block]: block }, className), ref: rootRef, onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": getDataTestId(dataTestId) },
428
+ return (React.createElement("div", { ...(disabled && { 'aria-disabled': true }), "aria-expanded": inputProps['aria-expanded'], "aria-haspopup": 'listbox', role: inputProps.role, className: cn(styles.component, { [styles.block]: block }, className), onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": getDataTestId(dataTestId) },
442
429
  nativeSelect && renderNativeSelect(),
443
430
  React.createElement(Field, { selectedMultiple: selectedItems, selected: selectedItems[0], setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, multiple: multiple, open: open, disabled: disabled, size: size, placeholder: placeholder, label: label && React.createElement("span", { ...getLabelProps() }, label), labelView: labelView, Arrow: Arrow && React.createElement(Arrow, { open: open, size: size, disabled: disabled }), error: error, hint: hint, valueRenderer: valueRenderer, className: fieldClassName, clear: clear, onClear: handleFieldClear, innerProps: {
444
431
  onBlur: handleFieldBlur,
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/base-select/Component.tsx"],"sourcesContent":["/* eslint-disable no-nested-ternary */\nimport React, {\n type AriaAttributes,\n type FocusEvent,\n forwardRef,\n type KeyboardEvent,\n type MouseEvent,\n type RefAttributes,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport { ResizeObserver as ResizeObserverPolyfill } from '@juggle/resize-observer';\nimport cn from 'classnames';\nimport { compute } from 'compute-scroll-into-view';\nimport {\n useCombobox,\n useMultipleSelection,\n type UseMultipleSelectionProps,\n type UseMultipleSelectionState,\n} from 'downshift';\n\nimport { fnUtils, getDataTestId, isClient } from '@alfalab/core-components-shared';\nimport { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';\n\nimport {\n type AnyObject,\n type OptionShape,\n type OptionsListProps,\n type SearchProps,\n} from '../../typings';\nimport {\n defaultAccessor,\n defaultFilterFn,\n defaultGroupAccessor,\n isGroup,\n processOptions,\n} from '../../utils';\nimport { NativeSelect } from '../native-select';\n\nimport { type ComponentProps } from './types/component-types';\n\nimport styles from './index.module.css';\nimport mobileStyles from './mobile.module.css';\n\nconst itemToString = (option: OptionShape | null) => (option ? option.key : '');\n\nconst isItemDisabled = (option: OptionShape | null) => Boolean(option?.disabled);\n\nexport const BaseSelect = forwardRef<unknown, ComponentProps>(\n // TODO: 😭\n // eslint-disable-next-line complexity\n (props, ref) => {\n const {\n dataTestId,\n className,\n fieldClassName,\n optionGroupClassName,\n optionsListClassName,\n optionClassName,\n popperClassName,\n options,\n autocomplete = false,\n multiple = false,\n allowUnselect = false,\n disabled = false,\n closeOnSelect = !multiple,\n circularNavigation = false,\n nativeSelect = false,\n defaultOpen = false,\n open: openProp,\n popoverPosition = 'bottom-start',\n preventFlip = true,\n optionsListWidth = 'content',\n name,\n id,\n selected,\n size = 48,\n optionsSize = size,\n error,\n hint,\n block,\n label,\n labelView,\n placeholder,\n fieldProps = {},\n optionsListProps = {},\n optionProps = {},\n groupOptionProps = {},\n searchProps = {},\n showSearch = false,\n valueRenderer,\n onChange,\n onOpen,\n onFocus,\n onBlur,\n onScroll,\n onClear,\n clear,\n Arrow,\n Field = () => null,\n OptionsList = () => null,\n Optgroup = () => null,\n Option = () => null,\n Search = () => null,\n updatePopover,\n zIndexPopover,\n showEmptyOptionsList = false,\n visibleOptions,\n view,\n isBottomSheet = true,\n footer,\n swipeable,\n modalProps,\n popoverProps,\n modalFooterProps,\n modalHeaderProps,\n bottomSheetProps,\n Popover,\n ModalMobile,\n BottomSheet,\n limitDynamicOptionGroupSize,\n environment = isClient() ? window : undefined,\n } = props;\n const shouldSearchBlurRef = useRef(true);\n const rootRef = useRef<HTMLDivElement>(null);\n const fieldRef = useRef<HTMLInputElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const initiatorRef = useRef<OptionShape | null>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n const scrollableContainerRef = useRef<HTMLDivElement>(null);\n const onOpenRef = useRef(onOpen);\n\n const [searchState, setSearchState] = React.useState('');\n\n const [search, setSearch] =\n typeof searchProps?.value === 'string'\n ? [searchProps.value, searchProps.onChange]\n : [searchState, setSearchState];\n\n const accessor = searchProps.accessor || defaultAccessor;\n const filterFn = searchProps.filterFn || defaultFilterFn;\n const filterGroup = searchProps.filterGroup ?? false;\n const groupAccessor = searchProps.groupAccessor ?? defaultGroupAccessor;\n\n const { filteredOptions, flatOptions, selectedOptions } = useMemo(\n () =>\n processOptions(\n options,\n selected,\n (option) => {\n if (isGroup(option)) {\n const groupAccessorValue = groupAccessor(option);\n\n return (\n typeof groupAccessorValue === 'string' &&\n filterFn(groupAccessorValue, search)\n );\n }\n\n return filterFn(accessor(option), search);\n },\n filterGroup,\n ),\n [options, selected, filterFn, accessor, search, filterGroup, groupAccessor],\n );\n\n const scrollIntoView = (node: HTMLElement) => {\n if (!node || view === 'mobile') return;\n\n requestAnimationFrame(() => {\n const actions = compute(node, {\n boundary: listRef.current,\n block: 'nearest',\n scrollMode: 'if-needed',\n });\n\n actions.forEach((action) => {\n const { el, top } = action;\n\n el.scrollTop = top;\n });\n });\n };\n\n const useMultipleSelectionProps: UseMultipleSelectionProps<OptionShape> = {\n itemToString,\n onSelectedItemsChange: (changes) => {\n if (onChange) {\n const { selectedItems = [] } = changes;\n\n onChange({\n selectedMultiple: selectedItems,\n selected: selectedItems.length ? selectedItems[0] : null,\n initiator: initiatorRef.current,\n name,\n });\n\n initiatorRef.current = null;\n }\n },\n stateReducer: (state, actionAndChanges) => {\n const { type, changes } = actionAndChanges;\n\n if (\n type === useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace &&\n (!allowUnselect ||\n environment?.document.activeElement?.isSameNode(searchRef.current))\n ) {\n return state;\n }\n\n return changes as UseMultipleSelectionState<OptionShape>;\n },\n };\n\n if (selected !== undefined) {\n useMultipleSelectionProps.selectedItems = selectedOptions;\n }\n\n onOpenRef.current = onOpen;\n\n const {\n selectedItems,\n addSelectedItem,\n setSelectedItems,\n removeSelectedItem,\n getDropdownProps,\n } = useMultipleSelection(useMultipleSelectionProps);\n\n const {\n isOpen: open,\n getMenuProps,\n getInputProps,\n getItemProps,\n getLabelProps,\n highlightedIndex,\n toggleMenu,\n openMenu,\n closeMenu,\n setHighlightedIndex,\n } = useCombobox<OptionShape>({\n id,\n isOpen: openProp,\n items: flatOptions,\n itemToString,\n isItemDisabled,\n defaultHighlightedIndex: selectedItems.length === 0 ? -1 : undefined,\n scrollIntoView,\n environment,\n onSelectedItemChange: (changes) => {\n const selectedItem = changes.selectedItem || initiatorRef.current;\n\n if (selectedItem && !selectedItem.disabled) {\n const alreadySelected = selectedItems.includes(selectedItem);\n const allowRemove = allowUnselect || (multiple && selectedItems.length > 1);\n\n if (alreadySelected && allowRemove) {\n removeSelectedItem(selectedItem);\n }\n\n if (!alreadySelected) {\n if (multiple) {\n addSelectedItem(selectedItem);\n } else {\n setSelectedItems([selectedItem]);\n }\n }\n }\n },\n onIsOpenChange: (changes) => {\n if (onOpenRef.current) {\n /**\n * Вызываем обработчик асинхронно.\n *\n * Иначе при клике вне открытого селекта сначала сработает onOpen, который закроет селект,\n * А затем сработает onClick кнопки открытия\\закрытия с open=false и в итоге селект откроется снова.\n */\n setTimeout(() => {\n onOpenRef.current?.({\n open: changes.isOpen,\n name,\n });\n }, 0);\n }\n\n if (showSearch) {\n if (changes.isOpen && view === 'desktop') {\n setTimeout(() => {\n searchRef.current?.focus();\n }, 0);\n } else {\n setSearch?.('');\n }\n }\n },\n stateReducer: (state, actionAndChanges) => {\n const { type, changes } = actionAndChanges;\n\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownArrowDown:\n if (\n !circularNavigation &&\n state.highlightedIndex === flatOptions.length - 1\n ) {\n return { ...changes, highlightedIndex: state.highlightedIndex };\n }\n\n return changes;\n case useCombobox.stateChangeTypes.InputKeyDownArrowUp:\n if (!circularNavigation && state.highlightedIndex === 0) {\n return { ...changes, highlightedIndex: state.highlightedIndex };\n }\n\n return changes;\n\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick: {\n const { selectedItem } = changes;\n\n if (\n type === useCombobox.stateChangeTypes.InputKeyDownEnter &&\n state.highlightedIndex === -1\n ) {\n return state;\n }\n\n initiatorRef.current = selectedItem || null;\n\n return {\n ...changes,\n selectedItem: state.selectedItem === selectedItem ? null : selectedItem,\n isOpen: !closeOnSelect || (view === 'mobile' && multiple),\n // при closeOnSelect === false - сохраняем подсвеченный индекс\n highlightedIndex:\n state.isOpen && !closeOnSelect\n ? state.highlightedIndex\n : changes.highlightedIndex,\n };\n }\n default:\n return changes;\n }\n },\n });\n\n useEffect(() => {\n /*\n * При изменении openProp, состояние внутри downshift в useEnhancedReducer не меняется, поэтому меняем его таким способом\n * Скорее всего это исправят в будущих версиях downshift\n */\n if (openProp !== undefined) {\n if (openProp) {\n openMenu();\n } else {\n closeMenu();\n }\n }\n }, [openProp, openMenu, closeMenu]);\n\n const inputProps = getInputProps(getDropdownProps({ ref: mergeRefs([ref, fieldRef]) }));\n const { ref: menuRef, ...menuProps } = getMenuProps(\n { ref: listRef },\n { suppressRefError: true },\n );\n\n const handleEntered = (node: HTMLElement, isAppearing: boolean) => {\n if (showSearch) searchRef.current?.focus();\n\n if (isBottomSheet) {\n bottomSheetProps?.transitionProps?.onEntered?.(node, isAppearing);\n } else {\n modalProps?.transitionProps?.onEntered?.(node, isAppearing);\n }\n };\n\n const handleFieldFocus = (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => {\n if (onFocus) onFocus(event);\n\n if (autocomplete && !open) {\n openMenu();\n }\n };\n\n const handleFieldBlur = (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => {\n if (view === 'desktop') {\n const isNextFocusInsideField = fieldRef.current?.contains(\n (event.relatedTarget || document.activeElement) as HTMLElement,\n );\n\n const isNextFocusInsideList = listRef.current?.contains(\n (event.relatedTarget || document.activeElement) as HTMLElement,\n );\n\n if (!isNextFocusInsideField && !isNextFocusInsideList) {\n if (onBlur) onBlur(event);\n\n inputProps.onBlur?.(event);\n }\n }\n\n if (view === 'mobile' && !open && onBlur) onBlur(event);\n };\n\n const handleFieldKeyDown = (event: KeyboardEvent<HTMLDivElement | HTMLInputElement>) => {\n inputProps.onKeyDown?.(event);\n\n // https://caniuse.com/?search=KeyboardEvent.key\n const isKeyUnsupported = event.key === 'Unidentified';\n\n if (\n autocomplete &&\n !open &&\n (isKeyUnsupported || event.key.length === 1 || event.key === 'Backspace')\n ) {\n // Для автокомплита - открываем меню при начале ввода\n openMenu();\n }\n\n if (\n [' ', 'Enter'].includes(event.key) &&\n !autocomplete &&\n !nativeSelect &&\n (event.target as HTMLElement).tagName !== 'INPUT' &&\n (event.target as HTMLElement).tagName !== 'BUTTON' &&\n (event.target as HTMLElement).tagName !== 'TEXTAREA'\n ) {\n // Открываем\\закрываем меню по нажатию enter или пробела\n event.preventDefault();\n if (!open || highlightedIndex === -1) toggleMenu();\n }\n };\n\n const handleFieldClick = (event: MouseEvent) => {\n if (!autocomplete || (event.target as HTMLElement).tagName !== 'INPUT') {\n toggleMenu();\n } else {\n openMenu();\n }\n };\n\n const handleNativeSelectChange = useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) => {\n setSelectedItems(\n // eslint-disable-next-line\n [...(event.target.options as any)].reduce(\n (acc, option, index) =>\n option.selected ? acc.concat(flatOptions[index]) : acc,\n [],\n ),\n );\n },\n [flatOptions, setSelectedItems],\n );\n\n const getOptionProps = (option: OptionShape, index: number) => ({\n ...(optionProps as object),\n mobile: view === 'mobile',\n className: cn(optionClassName, {\n [mobileStyles.option]: view === 'mobile',\n }),\n innerProps: getItemProps({\n index,\n item: option,\n onMouseDown: (event: MouseEvent) => event.preventDefault(),\n onClick: () => {\n if (view === 'mobile' || !showSearch || multiple) return;\n shouldSearchBlurRef.current = false;\n searchRef.current?.blur();\n shouldSearchBlurRef.current = true;\n fieldRef.current?.focus();\n },\n }),\n multiple,\n index,\n option,\n size: optionsSize,\n disabled: option.disabled,\n highlighted: index === highlightedIndex,\n selected: selectedItems.some(({ key }) => key === option.key),\n dataTestId: getDataTestId(dataTestId, 'option'),\n });\n\n useEffect(() => {\n if (defaultOpen) openMenu();\n }, [defaultOpen, openMenu]);\n\n useEffect(() => {\n if (openProp) {\n openMenu();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const calcOptionsListWidth = useCallback(() => {\n if (view === 'desktop' && listRef.current) {\n const widthAttr = optionsListWidth === 'field' ? 'width' : 'minWidth';\n\n const optionsListMinWidth = rootRef.current\n ? rootRef.current.getBoundingClientRect().width\n : 0;\n\n listRef.current.removeAttribute('style');\n listRef.current.style[widthAttr] = `${optionsListMinWidth}px`;\n }\n }, [view, optionsListWidth]);\n\n useEffect(() => {\n if (view === 'desktop') {\n const ResizeObserver = window.ResizeObserver || ResizeObserverPolyfill;\n const observer = new ResizeObserver(calcOptionsListWidth);\n\n if (rootRef.current) {\n observer.observe(rootRef.current);\n }\n\n return () => {\n observer.disconnect();\n };\n }\n\n return fnUtils.noop;\n }, [view, calcOptionsListWidth, open, optionsListWidth]);\n\n useLayoutEffect_SAFE_FOR_SSR(calcOptionsListWidth, [\n open,\n optionsListWidth,\n filteredOptions,\n selectedItems,\n ]);\n\n const renderValue = () =>\n selectedItems.map((option) => (\n <input type='hidden' name={name} value={option.key} key={option.key} />\n ));\n\n const renderNativeSelect = () => {\n const value = multiple\n ? selectedItems.map((option) => option.key)\n : selectedItems[0]?.key;\n\n return (\n <NativeSelect\n {...(menuProps as AnyObject)}\n className={styles.nativeSelect}\n disabled={disabled}\n multiple={multiple}\n name={name}\n value={value}\n onChange={handleNativeSelectChange}\n options={filteredOptions}\n />\n );\n };\n\n const handleFieldClear = (event: MouseEvent<HTMLButtonElement>) => {\n setSelectedItems([]);\n onClear?.(event);\n };\n\n const renderSearch = () => {\n if (!showSearch) return null;\n\n const handleClear: SearchProps['onClear'] = (event) => {\n setSearch?.('');\n searchProps?.componentProps?.onClear?.(event);\n };\n\n const handleChange: SearchProps['onChange'] = (event, payload) => {\n setSearch?.(payload.value);\n searchProps?.componentProps?.onChange?.(event, payload);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (!shouldSearchBlurRef.current) return;\n searchProps.componentProps?.onBlur?.(event);\n handleFieldBlur(event);\n };\n\n return (\n <Search\n {...searchProps?.componentProps}\n onBlur={handleBlur}\n value={search}\n onChange={handleChange}\n dataTestId={getDataTestId(dataTestId, 'search')}\n onClear={handleClear}\n className={cn(\n searchProps?.componentProps?.className,\n {\n [styles.search]: view === 'desktop',\n [mobileStyles.search]: view === 'mobile',\n },\n styles[`size-${size}`],\n )}\n ref={mergeRefs([searchRef, searchProps?.componentProps?.ref || null])}\n client={view}\n />\n );\n };\n\n const { header, emptyPlaceholder } = optionsListProps as OptionsListProps;\n\n const renderOptionsListHeader = () => {\n if (header || (view === 'desktop' && showSearch)) {\n return (\n <React.Fragment>\n {header}\n {view === 'desktop' && renderSearch()}\n </React.Fragment>\n );\n }\n\n return null;\n };\n\n const renderEmptyPlaceholder = () => {\n if (emptyPlaceholder) {\n return emptyPlaceholder;\n }\n\n if (showSearch) {\n return <div className={styles.emptySearchPlaceholder}>Ничего не нашлось</div>;\n }\n\n return undefined;\n };\n\n const renderOptionsList = () => {\n if (flatOptions.length === 0 && !showEmptyOptionsList && !showSearch) return null;\n\n const listProps = optionsListProps as OptionsListProps & RefAttributes<HTMLDivElement>;\n\n return (\n <div\n {...menuProps}\n ref={view === 'desktop' ? menuRef : undefined}\n className={cn(\n optionsListClassName,\n view === 'mobile' && mobileStyles.optionsListWrapper,\n view === 'desktop' && styles.optionsListWrapper,\n )}\n >\n <OptionsList\n {...listProps}\n ref={view === 'desktop' ? listProps.ref : scrollableContainerRef}\n setHighlightedIndex={view === 'desktop' ? setHighlightedIndex : undefined}\n className={cn(\n { [mobileStyles.optionsList]: view === 'mobile' },\n listProps.className,\n )}\n scrollbarClassName={cn(\n { [mobileStyles.scrollbar]: view === 'mobile' },\n listProps.scrollbarClassName,\n )}\n optionsListWidth={optionsListWidth}\n flatOptions={flatOptions}\n highlightedIndex={highlightedIndex}\n open={open}\n size={size}\n options={filteredOptions}\n Optgroup={Optgroup}\n Option={Option}\n selectedItems={selectedItems}\n setSelectedItems={setSelectedItems}\n toggleMenu={toggleMenu}\n groupOptionProps={groupOptionProps}\n getOptionProps={getOptionProps}\n visibleOptions={view === 'desktop' ? visibleOptions : 0}\n dataTestId={getDataTestId(dataTestId, 'options-list')}\n header={renderOptionsListHeader()}\n optionGroupClassName={cn(optionGroupClassName, {\n [mobileStyles.optionGroup]: view === 'mobile',\n })}\n emptyPlaceholder={renderEmptyPlaceholder()}\n onScroll={onScroll}\n search={search}\n multiple={multiple}\n limitDynamicOptionGroupSize={limitDynamicOptionGroupSize}\n client={view}\n />\n {view === 'desktop' && <div className={styles.optionsListBorder} />}\n </div>\n );\n };\n\n const renderInPopover = () => {\n if (!nativeSelect && Popover) {\n return (\n <Popover\n {...popoverProps}\n open={open}\n withTransition={false}\n anchorElement={fieldRef.current as HTMLElement}\n position={popoverPosition}\n preventFlip={preventFlip}\n popperClassName={cn(styles.popoverInner, popperClassName)}\n update={updatePopover}\n zIndex={zIndexPopover}\n >\n {renderOptionsList()}\n </Popover>\n );\n }\n\n return null;\n };\n\n const renderInBottomSheet = () => {\n if (!nativeSelect && BottomSheet) {\n const bottomAddons = bottomSheetProps?.bottomAddons;\n\n return (\n <BottomSheet\n dataTestId={getDataTestId(dataTestId, 'bottom-sheet')}\n open={open}\n className={mobileStyles.sheet}\n contentClassName={mobileStyles.sheetContent}\n containerClassName={mobileStyles.sheetContainer}\n title={label || placeholder}\n actionButton={footer ?? (multiple ? null : undefined)}\n stickyHeader={true}\n hasCloser={true}\n swipeable={swipeable}\n initialHeight={showSearch ? 'full' : 'default'}\n {...bottomSheetProps}\n sheetContainerRef={menuRef}\n scrollableContainerRef={scrollableContainerRef}\n onClose={() => {\n closeMenu();\n bottomSheetProps?.onClose?.();\n }}\n transitionProps={{\n ...bottomSheetProps?.transitionProps,\n onEntered: handleEntered,\n }}\n bottomAddons={\n <React.Fragment>\n {renderSearch()}\n {typeof bottomAddons === 'function'\n ? bottomAddons(flatOptions)\n : bottomAddons}\n </React.Fragment>\n }\n containerProps={{\n ...bottomSheetProps?.containerProps,\n onScroll,\n }}\n >\n {renderOptionsList()}\n </BottomSheet>\n );\n }\n\n return null;\n };\n\n const renderInModalMobile = () => {\n if (!nativeSelect && ModalMobile) {\n const bottomAddons = modalHeaderProps?.bottomAddons;\n\n return (\n <ModalMobile\n dataTestId={getDataTestId(dataTestId, 'modal')}\n open={open}\n hasCloser={true}\n {...modalProps}\n componentRef={menuRef}\n onClose={(...args) => {\n closeMenu();\n modalProps?.onClose?.(...args);\n }}\n contentClassName={cn(\n mobileStyles.sheetContent,\n modalProps?.contentClassName,\n )}\n ref={mergeRefs([\n scrollableContainerRef,\n modalProps?.ref as React.Ref<HTMLDivElement>,\n ])}\n wrapperProps={{\n ...modalProps?.wrapperProps,\n onScroll,\n }}\n transitionProps={{\n ...modalProps?.transitionProps,\n onEntered: handleEntered,\n }}\n >\n <ModalMobile.Header\n hasCloser={true}\n sticky={true}\n {...modalHeaderProps}\n title={undefined}\n bottomAddons={\n <React.Fragment>\n {renderSearch()}\n {typeof bottomAddons === 'function'\n ? bottomAddons(flatOptions)\n : bottomAddons}\n </React.Fragment>\n }\n >\n {modalHeaderProps?.title || label || placeholder}\n </ModalMobile.Header>\n\n <ModalMobile.Content flex={true} className={mobileStyles.modalContent}>\n {renderOptionsList()}\n </ModalMobile.Content>\n\n {modalFooterProps?.children && <ModalMobile.Footer {...modalFooterProps} />}\n </ModalMobile>\n );\n }\n\n return null;\n };\n\n return (\n <div\n {...(disabled && { 'aria-disabled': true })}\n aria-expanded={inputProps['aria-expanded']}\n aria-haspopup='listbox'\n role={inputProps.role}\n className={cn(styles.component, { [styles.block]: block }, className)}\n ref={rootRef}\n onKeyDown={disabled ? undefined : handleFieldKeyDown}\n tabIndex={-1}\n data-test-id={getDataTestId(dataTestId)}\n >\n {nativeSelect && renderNativeSelect()}\n\n <Field\n selectedMultiple={selectedItems}\n selected={selectedItems[0]}\n setSelectedItems={setSelectedItems}\n toggleMenu={toggleMenu}\n multiple={multiple}\n open={open}\n disabled={disabled}\n size={size}\n placeholder={placeholder}\n label={label && <span {...getLabelProps()}>{label}</span>}\n labelView={labelView}\n Arrow={Arrow && <Arrow open={open} size={size} disabled={disabled} />}\n error={error}\n hint={hint}\n valueRenderer={valueRenderer}\n className={fieldClassName}\n clear={clear}\n onClear={handleFieldClear}\n innerProps={{\n onBlur: handleFieldBlur,\n onFocus: disabled ? undefined : handleFieldFocus,\n onClick: disabled ? undefined : handleFieldClick,\n tabIndex: disabled ? undefined : nativeSelect ? -1 : 0,\n ref: inputProps.ref,\n id: inputProps.id,\n 'aria-label': (optionProps as AriaAttributes)['aria-label'],\n 'aria-labelledby': inputProps['aria-labelledby'],\n 'aria-controls': inputProps['aria-controls'],\n 'aria-autocomplete': autocomplete\n ? inputProps['aria-autocomplete']\n : undefined,\n }}\n dataTestId={getDataTestId(dataTestId, 'field')}\n {...(fieldProps as AnyObject)}\n />\n\n {name && !nativeSelect && renderValue()}\n\n {view === 'desktop' && renderInPopover()}\n {view === 'mobile' &&\n (isBottomSheet ? renderInBottomSheet() : renderInModalMobile())}\n </div>\n );\n },\n);\n"],"names":["ResizeObserver","ResizeObserverPolyfill"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/base-select/Component.tsx"],"sourcesContent":["/* eslint-disable no-nested-ternary */\nimport React, {\n type AriaAttributes,\n type FocusEvent,\n forwardRef,\n type KeyboardEvent,\n type MouseEvent,\n type RefAttributes,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\nimport { compute } from 'compute-scroll-into-view';\nimport {\n useCombobox,\n useMultipleSelection,\n type UseMultipleSelectionProps,\n type UseMultipleSelectionState,\n} from 'downshift';\n\nimport { getDataTestId, isClient } from '@alfalab/core-components-shared';\n\nimport {\n type AnyObject,\n type OptionShape,\n type OptionsListController,\n type OptionsListProps,\n type SearchProps,\n} from '../../typings';\nimport {\n defaultAccessor,\n defaultFilterFn,\n defaultGroupAccessor,\n isGroup,\n processOptions,\n} from '../../utils';\nimport { NativeSelect } from '../native-select';\n\nimport { type ComponentProps } from './types/component-types';\n\nimport styles from './index.module.css';\nimport mobileStyles from './mobile.module.css';\n\nconst itemToString = (option: OptionShape | null) => (option ? option.key : '');\n\nconst isItemDisabled = (option: OptionShape | null) => Boolean(option?.disabled);\n\nexport const BaseSelect = forwardRef<unknown, ComponentProps>(\n // TODO: 😭\n // eslint-disable-next-line complexity\n (props, ref) => {\n const {\n dataTestId,\n className,\n fieldClassName,\n optionGroupClassName,\n optionsListClassName,\n optionClassName,\n popperClassName,\n options,\n autocomplete = false,\n multiple = false,\n allowUnselect = false,\n disabled = false,\n closeOnSelect = !multiple,\n circularNavigation = false,\n nativeSelect = false,\n defaultOpen = false,\n open: openProp,\n popoverPosition = 'bottom-start',\n preventFlip = true,\n optionsListWidth = 'content',\n name,\n id,\n selected,\n size = 48,\n optionsSize = size,\n error,\n hint,\n block,\n label,\n labelView,\n placeholder,\n fieldProps = {},\n optionsListProps = {},\n optionProps = {},\n groupOptionProps = {},\n searchProps = {},\n showSearch = false,\n valueRenderer,\n onChange,\n onOpen,\n onFocus,\n onBlur,\n onScroll,\n onClear,\n clear,\n Arrow,\n Field = () => null,\n OptionsList = () => null,\n Optgroup = () => null,\n Option = () => null,\n Search = () => null,\n updatePopover,\n zIndexPopover,\n showEmptyOptionsList = false,\n visibleOptions,\n view,\n isBottomSheet = true,\n footer,\n swipeable,\n modalProps,\n popoverProps,\n modalFooterProps,\n modalHeaderProps,\n bottomSheetProps,\n Popover,\n ModalMobile,\n BottomSheet,\n limitDynamicOptionGroupSize,\n environment = isClient() ? window : undefined,\n } = props;\n const shouldSearchBlurRef = useRef(true);\n const fieldRef = useRef<HTMLInputElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const initiatorRef = useRef<OptionShape | null>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n const scrollableContainerRef = useRef<HTMLDivElement>(null);\n const onOpenRef = useRef(onOpen);\n const optionsListCtrlRef = useRef<OptionsListController>(null);\n const [searchState, setSearchState] = React.useState('');\n\n const [search, setSearch] =\n typeof searchProps?.value === 'string'\n ? [searchProps.value, searchProps.onChange]\n : [searchState, setSearchState];\n\n const accessor = searchProps.accessor || defaultAccessor;\n const filterFn = searchProps.filterFn || defaultFilterFn;\n const filterGroup = searchProps.filterGroup ?? false;\n const groupAccessor = searchProps.groupAccessor ?? defaultGroupAccessor;\n\n const { filteredOptions, flatOptions, selectedOptions } = useMemo(\n () =>\n processOptions(\n options,\n selected,\n (option) => {\n if (isGroup(option)) {\n const groupAccessorValue = groupAccessor(option);\n\n return (\n typeof groupAccessorValue === 'string' &&\n filterFn(groupAccessorValue, search)\n );\n }\n\n return filterFn(accessor(option), search);\n },\n filterGroup,\n ),\n [options, selected, filterFn, accessor, search, filterGroup, groupAccessor],\n );\n\n const scrollIntoView = (node: HTMLElement) => {\n if (!node || view === 'mobile') return;\n const optionsListCtrl = optionsListCtrlRef.current;\n\n if (optionsListCtrl) {\n const dataIndex = node.getAttribute('data-index');\n\n if (dataIndex) {\n optionsListCtrl.scrollToIndex(Number(dataIndex));\n }\n } else {\n requestAnimationFrame(() => {\n const actions = compute(node, {\n boundary: listRef.current,\n block: 'nearest',\n scrollMode: 'if-needed',\n });\n\n actions.forEach((action) => {\n const { el, top } = action;\n\n el.scrollTop = top;\n });\n });\n }\n };\n\n const useMultipleSelectionProps: UseMultipleSelectionProps<OptionShape> = {\n itemToString,\n onSelectedItemsChange: (changes) => {\n if (onChange) {\n const { selectedItems = [] } = changes;\n\n onChange({\n selectedMultiple: selectedItems,\n selected: selectedItems.length ? selectedItems[0] : null,\n initiator: initiatorRef.current,\n name,\n });\n\n initiatorRef.current = null;\n }\n },\n stateReducer: (state, actionAndChanges) => {\n const { type, changes } = actionAndChanges;\n\n if (\n type === useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace &&\n (!allowUnselect ||\n environment?.document.activeElement?.isSameNode(searchRef.current))\n ) {\n return state;\n }\n\n return changes as UseMultipleSelectionState<OptionShape>;\n },\n };\n\n if (selected !== undefined) {\n useMultipleSelectionProps.selectedItems = selectedOptions;\n }\n\n onOpenRef.current = onOpen;\n\n const {\n selectedItems,\n addSelectedItem,\n setSelectedItems,\n removeSelectedItem,\n getDropdownProps,\n } = useMultipleSelection(useMultipleSelectionProps);\n\n const {\n isOpen: open,\n getMenuProps,\n getInputProps,\n getItemProps,\n getLabelProps,\n highlightedIndex,\n toggleMenu,\n openMenu,\n closeMenu,\n setHighlightedIndex,\n } = useCombobox<OptionShape>({\n id,\n isOpen: openProp,\n items: flatOptions,\n itemToString,\n isItemDisabled,\n defaultHighlightedIndex: selectedItems.length === 0 ? -1 : undefined,\n scrollIntoView,\n environment,\n onSelectedItemChange: (changes) => {\n const selectedItem = changes.selectedItem || initiatorRef.current;\n\n if (selectedItem && !selectedItem.disabled) {\n const alreadySelected = selectedItems.includes(selectedItem);\n const allowRemove = allowUnselect || (multiple && selectedItems.length > 1);\n\n if (alreadySelected && allowRemove) {\n removeSelectedItem(selectedItem);\n }\n\n if (!alreadySelected) {\n if (multiple) {\n addSelectedItem(selectedItem);\n } else {\n setSelectedItems([selectedItem]);\n }\n }\n }\n },\n onIsOpenChange: (changes) => {\n if (onOpenRef.current) {\n /**\n * Вызываем обработчик асинхронно.\n *\n * Иначе при клике вне открытого селекта сначала сработает onOpen, который закроет селект,\n * А затем сработает onClick кнопки открытия\\закрытия с open=false и в итоге селект откроется снова.\n */\n setTimeout(() => {\n onOpenRef.current?.({\n open: changes.isOpen,\n name,\n });\n }, 0);\n }\n\n if (showSearch) {\n if (changes.isOpen && view === 'desktop') {\n setTimeout(() => {\n searchRef.current?.focus();\n }, 0);\n } else {\n setSearch?.('');\n }\n }\n },\n stateReducer: (state, actionAndChanges) => {\n const { type, changes } = actionAndChanges;\n\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownArrowDown:\n if (\n !circularNavigation &&\n state.highlightedIndex === flatOptions.length - 1\n ) {\n return { ...changes, highlightedIndex: state.highlightedIndex };\n }\n\n return changes;\n case useCombobox.stateChangeTypes.InputKeyDownArrowUp:\n if (!circularNavigation && state.highlightedIndex === 0) {\n return { ...changes, highlightedIndex: state.highlightedIndex };\n }\n\n return changes;\n\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick: {\n const { selectedItem } = changes;\n\n if (\n type === useCombobox.stateChangeTypes.InputKeyDownEnter &&\n state.highlightedIndex === -1\n ) {\n return state;\n }\n\n initiatorRef.current = selectedItem || null;\n\n return {\n ...changes,\n selectedItem: state.selectedItem === selectedItem ? null : selectedItem,\n isOpen: !closeOnSelect || (view === 'mobile' && multiple),\n // при closeOnSelect === false - сохраняем подсвеченный индекс\n highlightedIndex:\n state.isOpen && !closeOnSelect\n ? state.highlightedIndex\n : changes.highlightedIndex,\n };\n }\n default:\n return changes;\n }\n },\n });\n\n useEffect(() => {\n /*\n * При изменении openProp, состояние внутри downshift в useEnhancedReducer не меняется, поэтому меняем его таким способом\n * Скорее всего это исправят в будущих версиях downshift\n */\n if (openProp !== undefined) {\n if (openProp) {\n openMenu();\n } else {\n closeMenu();\n }\n }\n }, [openProp, openMenu, closeMenu]);\n\n const inputProps = getInputProps(getDropdownProps({ ref: mergeRefs([ref, fieldRef]) }));\n const { ref: menuRef, ...menuProps } = getMenuProps(\n { ref: listRef },\n { suppressRefError: true },\n );\n\n const handleEntered = (node: HTMLElement, isAppearing: boolean) => {\n if (showSearch) searchRef.current?.focus();\n\n if (isBottomSheet) {\n bottomSheetProps?.transitionProps?.onEntered?.(node, isAppearing);\n } else {\n modalProps?.transitionProps?.onEntered?.(node, isAppearing);\n }\n };\n\n const handleFieldFocus = (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => {\n if (onFocus) onFocus(event);\n\n if (autocomplete && !open) {\n openMenu();\n }\n };\n\n const handleFieldBlur = (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => {\n if (view === 'desktop') {\n const isNextFocusInsideField = fieldRef.current?.contains(\n (event.relatedTarget || document.activeElement) as HTMLElement,\n );\n\n const isNextFocusInsideList = listRef.current?.contains(\n (event.relatedTarget || document.activeElement) as HTMLElement,\n );\n\n if (!isNextFocusInsideField && !isNextFocusInsideList) {\n if (onBlur) onBlur(event);\n\n inputProps.onBlur?.(event);\n }\n }\n\n if (view === 'mobile' && !open && onBlur) onBlur(event);\n };\n\n const handleFieldKeyDown = (event: KeyboardEvent<HTMLDivElement | HTMLInputElement>) => {\n inputProps.onKeyDown?.(event);\n\n // https://caniuse.com/?search=KeyboardEvent.key\n const isKeyUnsupported = event.key === 'Unidentified';\n\n if (\n autocomplete &&\n !open &&\n (isKeyUnsupported || event.key.length === 1 || event.key === 'Backspace')\n ) {\n // Для автокомплита - открываем меню при начале ввода\n openMenu();\n }\n\n if (\n [' ', 'Enter'].includes(event.key) &&\n !autocomplete &&\n !nativeSelect &&\n (event.target as HTMLElement).tagName !== 'INPUT' &&\n (event.target as HTMLElement).tagName !== 'BUTTON' &&\n (event.target as HTMLElement).tagName !== 'TEXTAREA'\n ) {\n // Открываем\\закрываем меню по нажатию enter или пробела\n event.preventDefault();\n if (!open || highlightedIndex === -1) toggleMenu();\n }\n };\n\n const handleFieldClick = (event: MouseEvent) => {\n if (!autocomplete || (event.target as HTMLElement).tagName !== 'INPUT') {\n toggleMenu();\n } else {\n openMenu();\n }\n };\n\n const handleNativeSelectChange = useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) => {\n setSelectedItems(\n // eslint-disable-next-line\n [...(event.target.options as any)].reduce(\n (acc, option, index) =>\n option.selected ? acc.concat(flatOptions[index]) : acc,\n [],\n ),\n );\n },\n [flatOptions, setSelectedItems],\n );\n\n const getOptionProps = (option: OptionShape, index: number) => ({\n ...(optionProps as object),\n mobile: view === 'mobile',\n className: cn(optionClassName, {\n [styles.option]: view === 'desktop',\n [mobileStyles.option]: view === 'mobile',\n }),\n innerProps: getItemProps({\n index,\n item: option,\n onMouseDown: (event: MouseEvent) => event.preventDefault(),\n onClick: () => {\n if (view === 'mobile' || !showSearch || multiple) return;\n shouldSearchBlurRef.current = false;\n searchRef.current?.blur();\n shouldSearchBlurRef.current = true;\n fieldRef.current?.focus();\n },\n 'data-index': index,\n }),\n multiple,\n index,\n option,\n size: optionsSize,\n disabled: option.disabled,\n highlighted: index === highlightedIndex,\n selected: selectedItems.some(({ key }) => key === option.key),\n dataTestId: getDataTestId(dataTestId, 'option'),\n });\n\n useEffect(() => {\n if (defaultOpen) openMenu();\n }, [defaultOpen, openMenu]);\n\n useEffect(() => {\n if (openProp) {\n openMenu();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const renderValue = () =>\n selectedItems.map((option) => (\n <input type='hidden' name={name} value={option.key} key={option.key} />\n ));\n\n const renderNativeSelect = () => {\n const value = multiple\n ? selectedItems.map((option) => option.key)\n : selectedItems[0]?.key;\n\n return (\n <NativeSelect\n {...(menuProps as AnyObject)}\n className={styles.nativeSelect}\n disabled={disabled}\n multiple={multiple}\n name={name}\n value={value}\n onChange={handleNativeSelectChange}\n options={filteredOptions}\n />\n );\n };\n\n const handleFieldClear = (event: MouseEvent<HTMLButtonElement>) => {\n setSelectedItems([]);\n onClear?.(event);\n };\n\n const renderSearch = () => {\n if (!showSearch) return null;\n\n const handleClear: SearchProps['onClear'] = (event) => {\n setSearch?.('');\n searchProps?.componentProps?.onClear?.(event);\n };\n\n const handleChange: SearchProps['onChange'] = (event, payload) => {\n setSearch?.(payload.value);\n searchProps?.componentProps?.onChange?.(event, payload);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (!shouldSearchBlurRef.current) return;\n searchProps.componentProps?.onBlur?.(event);\n handleFieldBlur(event);\n };\n\n return (\n <Search\n {...searchProps?.componentProps}\n onBlur={handleBlur}\n value={search}\n onChange={handleChange}\n dataTestId={getDataTestId(dataTestId, 'search')}\n onClear={handleClear}\n className={cn(\n searchProps?.componentProps?.className,\n {\n [styles.search]: view === 'desktop',\n [mobileStyles.search]: view === 'mobile',\n },\n styles[`size-${size}`],\n )}\n ref={mergeRefs([searchRef, searchProps?.componentProps?.ref || null])}\n client={view}\n />\n );\n };\n\n const { header, emptyPlaceholder } = optionsListProps as OptionsListProps;\n\n const renderOptionsListHeader = () => {\n if (header || (view === 'desktop' && showSearch)) {\n return (\n <React.Fragment>\n {header}\n {view === 'desktop' && renderSearch()}\n </React.Fragment>\n );\n }\n\n return null;\n };\n\n const renderEmptyPlaceholder = () => {\n if (emptyPlaceholder) {\n return emptyPlaceholder;\n }\n\n if (showSearch) {\n return <div className={styles.emptySearchPlaceholder}>Ничего не нашлось</div>;\n }\n\n return undefined;\n };\n\n const renderOptionsList = () => {\n if (flatOptions.length === 0 && !showEmptyOptionsList && !showSearch) return null;\n\n const listProps = optionsListProps as OptionsListProps & RefAttributes<HTMLDivElement>;\n\n return (\n <div\n {...menuProps}\n ref={view === 'desktop' ? menuRef : undefined}\n className={cn(\n optionsListClassName,\n view === 'mobile' && mobileStyles.optionsListWrapper,\n view === 'desktop' && styles.optionsListWrapper,\n {\n [styles.matchContent]:\n view === 'desktop' && optionsListWidth === 'content',\n },\n )}\n >\n <OptionsList\n {...listProps}\n ctrlRef={optionsListCtrlRef}\n ref={view === 'desktop' ? listProps.ref : scrollableContainerRef}\n setHighlightedIndex={view === 'desktop' ? setHighlightedIndex : undefined}\n className={cn(\n {\n [mobileStyles.optionsList]: view === 'mobile',\n },\n listProps.className,\n )}\n scrollbarClassName={cn(\n {\n [styles.scrollbar]: view === 'desktop',\n [mobileStyles.scrollbar]: view === 'mobile',\n },\n listProps.scrollbarClassName,\n )}\n scrollableNodeClassName={cn({ [styles.scrollable]: view === 'desktop' })}\n contentNodeClassName={cn({ [styles.content]: view === 'desktop' })}\n listNodeClassName={cn({ [styles.list]: view === 'desktop' })}\n optionsListWidth={optionsListWidth}\n flatOptions={flatOptions}\n highlightedIndex={highlightedIndex}\n open={open}\n size={size}\n options={filteredOptions}\n Optgroup={Optgroup}\n Option={Option}\n selectedItems={selectedItems}\n setSelectedItems={setSelectedItems}\n toggleMenu={toggleMenu}\n groupOptionProps={groupOptionProps}\n getOptionProps={getOptionProps}\n visibleOptions={view === 'desktop' ? visibleOptions : 0}\n dataTestId={getDataTestId(dataTestId, 'options-list')}\n header={renderOptionsListHeader()}\n optionGroupClassName={cn(optionGroupClassName, {\n [mobileStyles.optionGroup]: view === 'mobile',\n })}\n emptyPlaceholder={renderEmptyPlaceholder()}\n onScroll={onScroll}\n search={search}\n multiple={multiple}\n limitDynamicOptionGroupSize={limitDynamicOptionGroupSize}\n client={view}\n />\n {view === 'desktop' && <div className={styles.optionsListBorder} />}\n </div>\n );\n };\n\n const renderInPopover = () => {\n if (!nativeSelect && Popover) {\n return (\n <Popover\n {...popoverProps}\n open={open}\n withTransition={false}\n anchorElement={fieldRef.current as HTMLElement}\n position={popoverPosition}\n preventFlip={preventFlip}\n popperClassName={cn(styles.popoverInner, popperClassName)}\n update={updatePopover}\n zIndex={zIndexPopover}\n useAnchorWidth={true}\n widthProp={optionsListWidth === 'field' ? 'width' : 'minWidth'}\n >\n {renderOptionsList()}\n </Popover>\n );\n }\n\n return null;\n };\n\n const renderInBottomSheet = () => {\n if (!nativeSelect && BottomSheet) {\n const bottomAddons = bottomSheetProps?.bottomAddons;\n\n return (\n <BottomSheet\n dataTestId={getDataTestId(dataTestId, 'bottom-sheet')}\n open={open}\n className={mobileStyles.sheet}\n contentClassName={mobileStyles.sheetContent}\n containerClassName={mobileStyles.sheetContainer}\n title={label || placeholder}\n actionButton={footer ?? (multiple ? null : undefined)}\n stickyHeader={true}\n hasCloser={true}\n swipeable={swipeable}\n initialHeight={showSearch ? 'full' : 'default'}\n {...bottomSheetProps}\n sheetContainerRef={menuRef}\n scrollableContainerRef={scrollableContainerRef}\n onClose={() => {\n closeMenu();\n bottomSheetProps?.onClose?.();\n }}\n transitionProps={{\n ...bottomSheetProps?.transitionProps,\n onEntered: handleEntered,\n }}\n bottomAddons={\n <React.Fragment>\n {renderSearch()}\n {typeof bottomAddons === 'function'\n ? bottomAddons(flatOptions)\n : bottomAddons}\n </React.Fragment>\n }\n containerProps={{\n ...bottomSheetProps?.containerProps,\n onScroll,\n }}\n >\n {renderOptionsList()}\n </BottomSheet>\n );\n }\n\n return null;\n };\n\n const renderInModalMobile = () => {\n if (!nativeSelect && ModalMobile) {\n const bottomAddons = modalHeaderProps?.bottomAddons;\n\n return (\n <ModalMobile\n dataTestId={getDataTestId(dataTestId, 'modal')}\n open={open}\n hasCloser={true}\n {...modalProps}\n componentRef={menuRef}\n onClose={(...args) => {\n closeMenu();\n modalProps?.onClose?.(...args);\n }}\n contentClassName={cn(\n mobileStyles.sheetContent,\n modalProps?.contentClassName,\n )}\n ref={mergeRefs([\n scrollableContainerRef,\n modalProps?.ref as React.Ref<HTMLDivElement>,\n ])}\n wrapperProps={{\n ...modalProps?.wrapperProps,\n onScroll,\n }}\n transitionProps={{\n ...modalProps?.transitionProps,\n onEntered: handleEntered,\n }}\n >\n <ModalMobile.Header\n hasCloser={true}\n sticky={true}\n {...modalHeaderProps}\n title={undefined}\n bottomAddons={\n <React.Fragment>\n {renderSearch()}\n {typeof bottomAddons === 'function'\n ? bottomAddons(flatOptions)\n : bottomAddons}\n </React.Fragment>\n }\n >\n {modalHeaderProps?.title || label || placeholder}\n </ModalMobile.Header>\n\n <ModalMobile.Content flex={true} className={mobileStyles.modalContent}>\n {renderOptionsList()}\n </ModalMobile.Content>\n\n {modalFooterProps?.children && <ModalMobile.Footer {...modalFooterProps} />}\n </ModalMobile>\n );\n }\n\n return null;\n };\n\n return (\n <div\n {...(disabled && { 'aria-disabled': true })}\n aria-expanded={inputProps['aria-expanded']}\n aria-haspopup='listbox'\n role={inputProps.role}\n className={cn(styles.component, { [styles.block]: block }, className)}\n onKeyDown={disabled ? undefined : handleFieldKeyDown}\n tabIndex={-1}\n data-test-id={getDataTestId(dataTestId)}\n >\n {nativeSelect && renderNativeSelect()}\n\n <Field\n selectedMultiple={selectedItems}\n selected={selectedItems[0]}\n setSelectedItems={setSelectedItems}\n toggleMenu={toggleMenu}\n multiple={multiple}\n open={open}\n disabled={disabled}\n size={size}\n placeholder={placeholder}\n label={label && <span {...getLabelProps()}>{label}</span>}\n labelView={labelView}\n Arrow={Arrow && <Arrow open={open} size={size} disabled={disabled} />}\n error={error}\n hint={hint}\n valueRenderer={valueRenderer}\n className={fieldClassName}\n clear={clear}\n onClear={handleFieldClear}\n innerProps={{\n onBlur: handleFieldBlur,\n onFocus: disabled ? undefined : handleFieldFocus,\n onClick: disabled ? undefined : handleFieldClick,\n tabIndex: disabled ? undefined : nativeSelect ? -1 : 0,\n ref: inputProps.ref,\n id: inputProps.id,\n 'aria-label': (optionProps as AriaAttributes)['aria-label'],\n 'aria-labelledby': inputProps['aria-labelledby'],\n 'aria-controls': inputProps['aria-controls'],\n 'aria-autocomplete': autocomplete\n ? inputProps['aria-autocomplete']\n : undefined,\n }}\n dataTestId={getDataTestId(dataTestId, 'field')}\n {...(fieldProps as AnyObject)}\n />\n\n {name && !nativeSelect && renderValue()}\n\n {view === 'desktop' && renderInPopover()}\n {view === 'mobile' &&\n (isBottomSheet ? renderInBottomSheet() : renderInModalMobile())}\n </div>\n );\n },\n);\n"],"names":[],"mappings":"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"}
@@ -15,50 +15,49 @@
15
15
  :root {
16
16
  --gap-2xs: 4px;
17
17
  --gap-s: 12px;
18
- --gap-m: 16px;
19
18
  --gap-0: 0px;
20
19
  --gap-4: var(--gap-2xs);
21
20
  --gap-12: var(--gap-s);
22
- --gap-16: var(--gap-m);
23
21
  }
24
22
  :root {
25
23
 
26
24
  --select-options-list-border-radius: var(--border-radius-16);
25
+ --select-options-list-scrollbar-gap: var(--gap-12);
27
26
  --select-options-list-box-shadow: var(--shadow-m);
28
27
  --select-options-list-offset: var(--gap-4);
29
28
  --select-options-list-top-padding: var(--gap-0);
29
+ --select-options-list-right-padding: var(--gap-0);
30
30
  --select-options-list-bottom-padding: var(--gap-0);
31
+ --select-options-list-left-padding: var(--gap-0);
31
32
  --select-option-background: var(--color-light-modal-bg-primary);
33
+ --select-option-border-radius: var(--border-radius-0);
32
34
  }
33
- .select__component_s2fz9 {
35
+ .select__component_1hvc8 {
34
36
  width: -moz-max-content;
35
37
  width: max-content;
36
38
  position: relative;
37
39
  outline: 0;
38
40
  max-width: 100%;
39
41
  }
40
- .select__popoverInner_s2fz9 {
42
+ .select__popoverInner_1hvc8 {
41
43
  padding-top: var(--select-options-list-offset);
42
44
  padding-bottom: var(--select-options-list-offset);
43
45
  background: transparent;
44
46
  border-radius: var(--border-radius-0);
45
47
  position: relative;
46
48
  }
47
- .select__popoverInner_s2fz9.select__popoverInner_s2fz9 {
49
+ .select__popoverInner_1hvc8.select__popoverInner_1hvc8 {
48
50
  box-shadow: none;
49
51
  border: none;
50
52
  }
51
- .select__optionsListWrapper_s2fz9 {
53
+ .select__optionsListWrapper_1hvc8 {
52
54
  position: relative;
53
- padding-top: var(--select-options-list-top-padding);
54
- padding-bottom: var(--select-options-list-bottom-padding);
55
55
  box-shadow: var(--select-options-list-box-shadow);
56
56
  border-radius: var(--select-options-list-border-radius);
57
57
  background: var(--select-option-background);
58
58
  overflow: hidden;
59
- will-change: transform;
60
59
  }
61
- .select__optionsListBorder_s2fz9 {
60
+ .select__optionsListBorder_1hvc8 {
62
61
  position: absolute;
63
62
  top: var(--gap-0);
64
63
  right: var(--gap-0);
@@ -68,7 +67,7 @@
68
67
  border-radius: inherit;
69
68
  pointer-events: none;
70
69
  }
71
- .select__nativeSelect_s2fz9 {
70
+ .select__nativeSelect_1hvc8 {
72
71
  opacity: 0;
73
72
  overflow: hidden;
74
73
  position: absolute;
@@ -82,19 +81,70 @@
82
81
  cursor: pointer;
83
82
  z-index: 1;
84
83
  }
85
- .select__block_s2fz9 {
84
+ .select__block_1hvc8 {
86
85
  width: 100%;
87
86
  }
88
- .select__emptySearchPlaceholder_s2fz9 {
87
+ .select__emptySearchPlaceholder_1hvc8 {
89
88
  text-align: center;
90
89
  }
91
- .select__search_s2fz9 {
92
- margin: var(--gap-12) var(--gap-12) var(--gap-0);
90
+ .select__search_1hvc8 {
91
+ margin: calc(var(--gap-12) - var(--select-options-list-top-padding))
92
+ calc(var(--gap-12) - var(--select-options-list-right-padding)) var(--gap-0)
93
+ calc(var(--gap-12) - var(--select-options-list-left-padding));
93
94
  }
94
- .select__search_s2fz9.select__size-72_s2fz9 {
95
- margin-left: var(--gap-16);
96
- margin-right: var(--gap-16);
95
+ .select__search_1hvc8:last-child {
96
+ margin-bottom: calc(var(--gap-12) - var(--select-options-list-bottom-padding));
97
97
  }
98
- .select__search_s2fz9:last-child {
99
- margin-bottom: var(--gap-12);
98
+ .select__option_1hvc8 {
99
+ border-radius: var(--select-option-border-radius);
100
+ }
101
+ .select__list_1hvc8 {
102
+ display: inline-block;
103
+ }
104
+ .select__matchContent_1hvc8 {
105
+ .select__scrollbar_1hvc8[data-simplebar] {
106
+ .select__scrollable_1hvc8 {
107
+ display: flex;
108
+ }
109
+
110
+ .select__content_1hvc8 {
111
+ flex-grow: 1;
112
+ }
113
+
114
+ .select__list_1hvc8 {
115
+ display: inline-block;
116
+ min-width: 100%;
117
+ }
100
118
  }
119
+
120
+ *:not(&) .select__list_1hvc8 {
121
+ min-width: 100%;
122
+ max-width: 100%;
123
+ }
124
+ }
125
+ .select__scrollbar_1hvc8 {
126
+ padding-right: var(--select-options-list-right-padding);
127
+ padding-left: var(--select-options-list-left-padding);
128
+ }
129
+ .select__scrollbar_1hvc8:first-child {
130
+ .select__list_1hvc8:before {
131
+ content: '';
132
+ display: block;
133
+ padding-top: var(--select-options-list-top-padding);
134
+ }
135
+ }
136
+ .select__scrollbar_1hvc8:last-child {
137
+ .select__list_1hvc8:after {
138
+ content: '';
139
+ display: block;
140
+ padding-top: var(--select-options-list-bottom-padding);
141
+ }
142
+ }
143
+ .simplebar-track.simplebar-vertical {
144
+ .select__scrollbar_1hvc8:first-child & {
145
+ top: var(--select-options-list-scrollbar-gap);
146
+ }
147
+ .select__scrollbar_1hvc8:last-child & {
148
+ bottom: var(--select-options-list-scrollbar-gap);
149
+ }
150
+ }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"component":"select__component_s2fz9","popoverInner":"select__popoverInner_s2fz9","optionsListWrapper":"select__optionsListWrapper_s2fz9","optionsListBorder":"select__optionsListBorder_s2fz9","nativeSelect":"select__nativeSelect_s2fz9","block":"select__block_s2fz9","emptySearchPlaceholder":"select__emptySearchPlaceholder_s2fz9","search":"select__search_s2fz9","size-72":"select__size-72_s2fz9"};
3
+ const styles = {"component":"select__component_1hvc8","popoverInner":"select__popoverInner_1hvc8","optionsListWrapper":"select__optionsListWrapper_1hvc8","optionsListBorder":"select__optionsListBorder_1hvc8","nativeSelect":"select__nativeSelect_1hvc8","block":"select__block_1hvc8","emptySearchPlaceholder":"select__emptySearchPlaceholder_1hvc8","search":"select__search_1hvc8","option":"select__option_1hvc8","list":"select__list_1hvc8","matchContent":"select__matchContent_1hvc8","scrollbar":"select__scrollbar_1hvc8","scrollable":"select__scrollable_1hvc8","content":"select__content_1hvc8"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/base-select/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../vars.css';\n\n.component {\n width: max-content;\n position: relative;\n outline: 0;\n max-width: 100%;\n}\n\n.popoverInner {\n padding-top: var(--select-options-list-offset);\n padding-bottom: var(--select-options-list-offset);\n background: transparent;\n border-radius: var(--border-radius-0);\n position: relative;\n}\n\n.popoverInner.popoverInner {\n box-shadow: none;\n border: none;\n}\n\n.optionsListWrapper {\n position: relative;\n padding-top: var(--select-options-list-top-padding);\n padding-bottom: var(--select-options-list-bottom-padding);\n box-shadow: var(--select-options-list-box-shadow);\n border-radius: var(--select-options-list-border-radius);\n background: var(--select-option-background);\n overflow: hidden;\n will-change: transform;\n}\n\n.optionsListBorder {\n position: absolute;\n top: var(--gap-0);\n right: var(--gap-0);\n bottom: var(--gap-0);\n left: var(--gap-0);\n box-shadow: inset 0 0 0 1px var(--color-light-neutral-300);\n border-radius: inherit;\n pointer-events: none;\n}\n\n.nativeSelect {\n opacity: 0;\n overflow: hidden;\n position: absolute;\n top: var(--gap-0);\n bottom: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n max-width: 100%;\n min-width: 0;\n height: 100%;\n cursor: pointer;\n z-index: 1;\n}\n\n.block {\n width: 100%;\n}\n\n.emptySearchPlaceholder {\n text-align: center;\n}\n\n.search {\n margin: var(--gap-12) var(--gap-12) var(--gap-0);\n\n &.size-72 {\n margin-left: var(--gap-16);\n margin-right: var(--gap-16);\n }\n\n &:last-child {\n margin-bottom: var(--gap-12);\n }\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,yBAAyB,CAAC,cAAc,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,cAAc,CAAC,4BAA4B,CAAC,OAAO,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,sCAAsC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,uBAAuB,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/base-select/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../vars.css';\n\n.component {\n width: max-content;\n position: relative;\n outline: 0;\n max-width: 100%;\n}\n\n.popoverInner {\n padding-top: var(--select-options-list-offset);\n padding-bottom: var(--select-options-list-offset);\n background: transparent;\n border-radius: var(--border-radius-0);\n position: relative;\n}\n\n.popoverInner.popoverInner {\n box-shadow: none;\n border: none;\n}\n\n.optionsListWrapper {\n position: relative;\n box-shadow: var(--select-options-list-box-shadow);\n border-radius: var(--select-options-list-border-radius);\n background: var(--select-option-background);\n overflow: hidden;\n}\n\n.optionsListBorder {\n position: absolute;\n top: var(--gap-0);\n right: var(--gap-0);\n bottom: var(--gap-0);\n left: var(--gap-0);\n box-shadow: inset 0 0 0 1px var(--color-light-neutral-300);\n border-radius: inherit;\n pointer-events: none;\n}\n\n.nativeSelect {\n opacity: 0;\n overflow: hidden;\n position: absolute;\n top: var(--gap-0);\n bottom: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n max-width: 100%;\n min-width: 0;\n height: 100%;\n cursor: pointer;\n z-index: 1;\n}\n\n.block {\n width: 100%;\n}\n\n.emptySearchPlaceholder {\n text-align: center;\n}\n\n.search {\n margin: calc(var(--gap-12) - var(--select-options-list-top-padding))\n calc(var(--gap-12) - var(--select-options-list-right-padding)) var(--gap-0)\n calc(var(--gap-12) - var(--select-options-list-left-padding));\n\n &:last-child {\n margin-bottom: calc(var(--gap-12) - var(--select-options-list-bottom-padding));\n }\n}\n\n.option {\n border-radius: var(--select-option-border-radius);\n}\n\n.list {\n display: inline-block;\n}\n\n.matchContent {\n .scrollbar[data-simplebar] {\n .scrollable {\n display: flex;\n }\n\n .content {\n flex-grow: 1;\n }\n\n .list {\n display: inline-block;\n min-width: 100%;\n }\n }\n\n *:not(&) .list {\n min-width: 100%;\n max-width: 100%;\n }\n}\n\n.scrollbar {\n padding-right: var(--select-options-list-right-padding);\n padding-left: var(--select-options-list-left-padding);\n &:first-child {\n .list:before {\n content: '';\n display: block;\n padding-top: var(--select-options-list-top-padding);\n }\n }\n &:last-child {\n .list:after {\n content: '';\n display: block;\n padding-top: var(--select-options-list-bottom-padding);\n }\n }\n}\n\n:global(.simplebar-track):global(.simplebar-vertical) {\n .scrollbar:first-child & {\n top: var(--select-options-list-scrollbar-gap);\n }\n .scrollbar:last-child & {\n bottom: var(--select-options-list-scrollbar-gap);\n }\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,yBAAyB,CAAC,cAAc,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,cAAc,CAAC,4BAA4B,CAAC,OAAO,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,sCAAsC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CAAC,WAAW,CAAC,yBAAyB,CAAC,YAAY,CAAC,0BAA0B,CAAC,SAAS,CAAC,uBAAuB,CAAC;;;;"}