@alfalab/core-components-select 19.1.10 → 19.2.0-alfasans

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 (257) 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 +19 -17
  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 +22 -18
  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 +8 -7
  26. package/components/optgroup/index.module.css.js +1 -1
  27. package/components/option/desktop/index.css +28 -22
  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 +25 -19
  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-option/index.module.css +5 -3
  45. package/cssm/components/base-select/Component.js +36 -49
  46. package/cssm/components/base-select/Component.js.map +1 -1
  47. package/cssm/components/base-select/index.module.css +61 -11
  48. package/cssm/components/base-select/mobile.module.css +1 -0
  49. package/cssm/components/field/index.module.css +9 -5
  50. package/cssm/components/optgroup/index.module.css +4 -3
  51. package/cssm/components/option/desktop/index.module.css +9 -3
  52. package/cssm/components/option/mobile/index.module.css +9 -3
  53. package/cssm/components/options-list/Component.d.ts +4 -0
  54. package/cssm/components/options-list/Component.js +32 -53
  55. package/cssm/components/options-list/Component.js.map +1 -1
  56. package/cssm/components/options-list/index.module.css +6 -26
  57. package/cssm/components/virtual-options-list/Component.d.ts +4 -0
  58. package/cssm/components/virtual-options-list/Component.js +61 -48
  59. package/cssm/components/virtual-options-list/Component.js.map +1 -1
  60. package/cssm/presets/useSelectWithApply/hook.d.ts +12 -0
  61. package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  62. package/cssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +0 -5
  63. package/cssm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +9 -6
  64. package/cssm/shared/index.js +0 -1
  65. package/cssm/shared/index.js.map +1 -1
  66. package/cssm/typings.d.ts +21 -1
  67. package/cssm/utils.d.ts +1 -6
  68. package/cssm/utils.js +19 -28
  69. package/cssm/utils.js.map +1 -1
  70. package/esm/components/arrow/index.css +4 -4
  71. package/esm/components/arrow/index.module.css.js +1 -1
  72. package/esm/components/base-checkmark/index.css +9 -9
  73. package/esm/components/base-checkmark/index.module.css.js +1 -1
  74. package/esm/components/base-option/index.css +19 -17
  75. package/esm/components/base-option/index.module.css.js +1 -1
  76. package/esm/components/base-select/Component.js +37 -50
  77. package/esm/components/base-select/Component.js.map +1 -1
  78. package/esm/components/base-select/index.css +70 -20
  79. package/esm/components/base-select/index.module.css.js +1 -1
  80. package/esm/components/base-select/index.module.css.js.map +1 -1
  81. package/esm/components/base-select/mobile.css +12 -11
  82. package/esm/components/base-select/mobile.module.css.js +1 -1
  83. package/esm/components/base-select/mobile.module.css.js.map +1 -1
  84. package/esm/components/checkmark/index.css +11 -11
  85. package/esm/components/checkmark/index.module.css.js +1 -1
  86. package/esm/components/checkmark-mobile/index.css +6 -6
  87. package/esm/components/checkmark-mobile/index.module.css.js +1 -1
  88. package/esm/components/clear-button/index.css +4 -4
  89. package/esm/components/clear-button/index.module.css.js +1 -1
  90. package/esm/components/field/index.css +22 -18
  91. package/esm/components/field/index.module.css.js +1 -1
  92. package/esm/components/footer/index.css +4 -4
  93. package/esm/components/footer/index.module.css.js +1 -1
  94. package/esm/components/optgroup/index.css +8 -7
  95. package/esm/components/optgroup/index.module.css.js +1 -1
  96. package/esm/components/option/desktop/index.css +28 -22
  97. package/esm/components/option/desktop/index.module.css.js +1 -1
  98. package/esm/components/option/desktop/index.module.css.js.map +1 -1
  99. package/esm/components/option/mobile/index.css +25 -19
  100. package/esm/components/option/mobile/index.module.css.js +1 -1
  101. package/esm/components/option/mobile/index.module.css.js.map +1 -1
  102. package/esm/components/options-list/Component.d.ts +4 -0
  103. package/esm/components/options-list/Component.js +33 -54
  104. package/esm/components/options-list/Component.js.map +1 -1
  105. package/esm/components/options-list/index.css +13 -33
  106. package/esm/components/options-list/index.module.css.js +1 -1
  107. package/esm/components/options-list/index.module.css.js.map +1 -1
  108. package/esm/components/search/index.css +1 -1
  109. package/esm/components/search/index.module.css.js +1 -1
  110. package/esm/components/virtual-options-list/Component.d.ts +4 -0
  111. package/esm/components/virtual-options-list/Component.js +63 -49
  112. package/esm/components/virtual-options-list/Component.js.map +1 -1
  113. package/esm/mobile/modal.mobile.css +1 -1
  114. package/esm/mobile/modal.mobile.module.css.js +1 -1
  115. package/esm/presets/useSelectWithApply/hook.d.ts +12 -0
  116. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  117. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +2 -7
  118. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  119. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js.map +1 -1
  120. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +12 -9
  121. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  122. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js.map +1 -1
  123. package/esm/presets/useSelectWithLoading/index.css +1 -1
  124. package/esm/presets/useSelectWithLoading/index.module.css.js +1 -1
  125. package/esm/shared/index.js +1 -1
  126. package/esm/typings.d.ts +21 -1
  127. package/esm/utils.d.ts +1 -6
  128. package/esm/utils.js +21 -29
  129. package/esm/utils.js.map +1 -1
  130. package/mobile/modal.mobile.css +1 -1
  131. package/mobile/modal.mobile.module.css.js +1 -1
  132. package/modern/components/arrow/index.css +4 -4
  133. package/modern/components/arrow/index.module.css.js +1 -1
  134. package/modern/components/base-checkmark/index.css +9 -9
  135. package/modern/components/base-checkmark/index.module.css.js +1 -1
  136. package/modern/components/base-option/index.css +19 -17
  137. package/modern/components/base-option/index.module.css.js +1 -1
  138. package/modern/components/base-select/Component.js +34 -47
  139. package/modern/components/base-select/Component.js.map +1 -1
  140. package/modern/components/base-select/index.css +70 -20
  141. package/modern/components/base-select/index.module.css.js +1 -1
  142. package/modern/components/base-select/index.module.css.js.map +1 -1
  143. package/modern/components/base-select/mobile.css +12 -11
  144. package/modern/components/base-select/mobile.module.css.js +1 -1
  145. package/modern/components/base-select/mobile.module.css.js.map +1 -1
  146. package/modern/components/checkmark/index.css +11 -11
  147. package/modern/components/checkmark/index.module.css.js +1 -1
  148. package/modern/components/checkmark-mobile/index.css +6 -6
  149. package/modern/components/checkmark-mobile/index.module.css.js +1 -1
  150. package/modern/components/clear-button/index.css +4 -4
  151. package/modern/components/clear-button/index.module.css.js +1 -1
  152. package/modern/components/field/index.css +22 -18
  153. package/modern/components/field/index.module.css.js +1 -1
  154. package/modern/components/footer/index.css +4 -4
  155. package/modern/components/footer/index.module.css.js +1 -1
  156. package/modern/components/optgroup/index.css +8 -7
  157. package/modern/components/optgroup/index.module.css.js +1 -1
  158. package/modern/components/option/desktop/index.css +28 -22
  159. package/modern/components/option/desktop/index.module.css.js +1 -1
  160. package/modern/components/option/desktop/index.module.css.js.map +1 -1
  161. package/modern/components/option/mobile/index.css +25 -19
  162. package/modern/components/option/mobile/index.module.css.js +1 -1
  163. package/modern/components/option/mobile/index.module.css.js.map +1 -1
  164. package/modern/components/options-list/Component.d.ts +4 -0
  165. package/modern/components/options-list/Component.js +29 -49
  166. package/modern/components/options-list/Component.js.map +1 -1
  167. package/modern/components/options-list/index.css +13 -33
  168. package/modern/components/options-list/index.module.css.js +1 -1
  169. package/modern/components/options-list/index.module.css.js.map +1 -1
  170. package/modern/components/search/index.css +1 -1
  171. package/modern/components/search/index.module.css.js +1 -1
  172. package/modern/components/virtual-options-list/Component.d.ts +4 -0
  173. package/modern/components/virtual-options-list/Component.js +59 -45
  174. package/modern/components/virtual-options-list/Component.js.map +1 -1
  175. package/modern/mobile/modal.mobile.css +1 -1
  176. package/modern/mobile/modal.mobile.module.css.js +1 -1
  177. package/modern/presets/useSelectWithApply/hook.d.ts +12 -0
  178. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  179. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +2 -7
  180. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  181. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js.map +1 -1
  182. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +12 -9
  183. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  184. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js.map +1 -1
  185. package/modern/presets/useSelectWithLoading/index.css +1 -1
  186. package/modern/presets/useSelectWithLoading/index.module.css.js +1 -1
  187. package/modern/shared/index.js +1 -1
  188. package/modern/typings.d.ts +21 -1
  189. package/modern/utils.d.ts +1 -6
  190. package/modern/utils.js +21 -29
  191. package/modern/utils.js.map +1 -1
  192. package/moderncssm/components/base-option/index.module.css +2 -1
  193. package/moderncssm/components/base-select/Component.js +34 -47
  194. package/moderncssm/components/base-select/Component.js.map +1 -1
  195. package/moderncssm/components/base-select/index.module.css +67 -9
  196. package/moderncssm/components/base-select/mobile.module.css +1 -0
  197. package/moderncssm/components/field/index.module.css +6 -3
  198. package/moderncssm/components/optgroup/index.module.css +1 -1
  199. package/moderncssm/components/option/desktop/index.module.css +5 -1
  200. package/moderncssm/components/option/mobile/index.module.css +5 -1
  201. package/moderncssm/components/options-list/Component.d.ts +4 -0
  202. package/moderncssm/components/options-list/Component.js +29 -49
  203. package/moderncssm/components/options-list/Component.js.map +1 -1
  204. package/moderncssm/components/options-list/index.module.css +7 -32
  205. package/moderncssm/components/virtual-options-list/Component.d.ts +4 -0
  206. package/moderncssm/components/virtual-options-list/Component.js +59 -45
  207. package/moderncssm/components/virtual-options-list/Component.js.map +1 -1
  208. package/moderncssm/presets/useSelectWithApply/hook.d.ts +12 -0
  209. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  210. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +0 -4
  211. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +8 -6
  212. package/moderncssm/shared/index.js +1 -1
  213. package/moderncssm/typings.d.ts +21 -1
  214. package/moderncssm/utils.d.ts +1 -6
  215. package/moderncssm/utils.js +21 -29
  216. package/moderncssm/utils.js.map +1 -1
  217. package/package.json +15 -16
  218. package/presets/useSelectWithApply/hook.d.ts +12 -0
  219. package/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  220. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +2 -7
  221. package/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  222. package/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js.map +1 -1
  223. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +12 -9
  224. package/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  225. package/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js.map +1 -1
  226. package/presets/useSelectWithLoading/index.css +1 -1
  227. package/presets/useSelectWithLoading/index.module.css.js +1 -1
  228. package/shared/index.js +0 -1
  229. package/shared/index.js.map +1 -1
  230. package/src/components/base-select/Component.tsx +41 -55
  231. package/src/components/base-select/index.module.css +60 -8
  232. package/src/components/base-select/mobile.module.css +1 -0
  233. package/src/components/option/index.module.css +4 -0
  234. package/src/components/options-list/Component.tsx +54 -97
  235. package/src/components/options-list/index.module.css +7 -31
  236. package/src/components/virtual-options-list/Component.tsx +95 -72
  237. package/src/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +0 -4
  238. package/src/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +4 -4
  239. package/src/typings.ts +26 -0
  240. package/src/utils.ts +30 -34
  241. package/src/vars.css +3 -0
  242. package/typings.d.ts +21 -1
  243. package/utils.d.ts +1 -6
  244. package/utils.js +19 -28
  245. package/utils.js.map +1 -1
  246. package/components/virtual-options-list/index.css +0 -83
  247. package/components/virtual-options-list/index.module.css.js +0 -8
  248. package/components/virtual-options-list/index.module.css.js.map +0 -1
  249. package/cssm/components/virtual-options-list/index.module.css +0 -83
  250. package/esm/components/virtual-options-list/index.css +0 -83
  251. package/esm/components/virtual-options-list/index.module.css.js +0 -6
  252. package/esm/components/virtual-options-list/index.module.css.js.map +0 -1
  253. package/modern/components/virtual-options-list/index.css +0 -83
  254. package/modern/components/virtual-options-list/index.module.css.js +0 -6
  255. package/modern/components/virtual-options-list/index.module.css.js.map +0 -1
  256. package/moderncssm/components/virtual-options-list/index.module.css +0 -81
  257. package/src/components/virtual-options-list/index.module.css +0 -77
@@ -15,8 +15,9 @@
15
15
  --gap-20: var(--gap-l);
16
16
  }
17
17
  :root {
18
- --font-family-system:
19
- system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Helvetica, sans-serif;
18
+ --font-family-alfasans:
19
+ 'Alfa Interface Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue',
20
+ Helvetica, sans-serif;
20
21
  }
21
22
  :root {
22
23
  --disabled-cursor: not-allowed;
@@ -34,11 +35,12 @@
34
35
  --select-option-active-color: var(--color-light-text-primary);
35
36
  --select-option-disabled-color: var(--color-light-text-secondary);
36
37
  }
37
- .select__option_psvdh {
38
+ .select__option_16gyz {
38
39
  font-size: 16px;
39
40
  line-height: 20px;
40
41
  font-weight: 400;
41
- font-family: var(--font-family-system);
42
+ letter-spacing: -0.24px;
43
+ font-family: var(--font-family-alfasans);
42
44
 
43
45
  display: flex;
44
46
  align-items: center;
@@ -50,49 +52,49 @@
50
52
  cursor: pointer;
51
53
  min-height: var(--size-s-height);
52
54
  }
53
- .select__option_psvdh:not(.select__disabled_psvdh):active {
55
+ .select__option_16gyz:not(.select__disabled_16gyz):active {
54
56
  background: var(--select-option-active-background);
55
57
  color: var(--select-option-active-color);
56
58
  }
57
- .select__option_psvdh.select__checkmarkBefore_psvdh {
59
+ .select__option_16gyz.select__checkmarkBefore_16gyz {
58
60
  padding: var(--gap-0) var(--gap-0) var(--gap-0) var(--gap-12);
59
61
  }
60
- .select__option_psvdh.select__checkmarkBefore_psvdh.select__mobile_psvdh {
62
+ .select__option_16gyz.select__checkmarkBefore_16gyz.select__mobile_16gyz {
61
63
  padding-left: var(--gap-16);
62
64
  }
63
- .select__option_psvdh.select__checkmarkAfter_psvdh.select__checkmarkAfter_psvdh {
65
+ .select__option_16gyz.select__checkmarkAfter_16gyz.select__checkmarkAfter_16gyz {
64
66
  padding: var(--gap-0) var(--gap-12) var(--gap-0) var(--gap-0);
65
67
  }
66
- .select__option_psvdh.select__checkmarkAfter_psvdh.select__checkmarkAfter_psvdh.select__size-72_psvdh {
68
+ .select__option_16gyz.select__checkmarkAfter_16gyz.select__checkmarkAfter_16gyz.select__size-72_16gyz {
67
69
  padding-right: var(--gap-16);
68
70
  }
69
- .select__option_psvdh.select__checkmarkAfter_psvdh.select__checkmarkAfter_psvdh.select__mobile_psvdh {
71
+ .select__option_16gyz.select__checkmarkAfter_16gyz.select__checkmarkAfter_16gyz.select__mobile_16gyz {
70
72
  padding-right: var(--gap-20);
71
73
  }
72
- .select__option_psvdh.select__textContent_psvdh {
74
+ .select__option_16gyz.select__textContent_16gyz {
73
75
  padding: var(--gap-12);
74
76
  }
75
- .select__option_psvdh.select__textContent_psvdh.select__size-72_psvdh {
77
+ .select__option_16gyz.select__textContent_16gyz.select__size-72_16gyz {
76
78
  padding-left: var(--gap-16);
77
79
  padding-right: var(--gap-16);
78
80
  }
79
- .select__option_psvdh.select__textContent_psvdh.select__mobile_psvdh {
81
+ .select__option_16gyz.select__textContent_16gyz.select__mobile_16gyz {
80
82
  padding: var(--gap-16) var(--gap-20);
81
83
  }
82
- .select__selected_psvdh {
84
+ .select__selected_16gyz {
83
85
  background: var(--select-option-selected-background);
84
86
  color: var(--select-option-selected-color);
85
87
  cursor: default;
86
88
  }
87
- .select__highlighted_psvdh {
89
+ .select__highlighted_16gyz {
88
90
  background: var(--select-option-hover-background);
89
91
  color: var(--select-option-hover-color);
90
92
  }
91
- .select__disabled_psvdh {
93
+ .select__disabled_16gyz {
92
94
  cursor: var(--disabled-cursor);
93
95
  background: var(--select-option-disabled-background);
94
96
  color: var(--select-option-disabled-color);
95
97
  }
96
- .select__content_psvdh {
98
+ .select__content_16gyz {
97
99
  flex: 1;
98
100
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- var 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
+ var styles = {"option":"select__option_16gyz","disabled":"select__disabled_16gyz","checkmarkBefore":"select__checkmarkBefore_16gyz","mobile":"select__mobile_16gyz","checkmarkAfter":"select__checkmarkAfter_16gyz","size-72":"select__size-72_16gyz","textContent":"select__textContent_16gyz","selected":"select__selected_16gyz","highlighted":"select__highlighted_16gyz","content":"select__content_16gyz"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1,12 +1,10 @@
1
1
  import { __assign, __rest, __spreadArray } from 'tslib';
2
2
  import React, { forwardRef, useRef, useMemo, useEffect, useCallback } from 'react';
3
3
  import mergeRefs from 'react-merge-refs';
4
- import { ResizeObserver } from '@juggle/resize-observer';
5
4
  import cn from 'classnames';
6
5
  import { compute } from 'compute-scroll-into-view';
7
6
  import { useMultipleSelection, useCombobox } from 'downshift';
8
- import { isClient, fnUtils, getDataTestId } from '@alfalab/core-components-shared/esm';
9
- import { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';
7
+ import { isClient, getDataTestId } from '@alfalab/core-components-shared/esm';
10
8
  import { defaultAccessor, defaultFilterFn, defaultGroupAccessor, processOptions, isGroup } from '../../utils.js';
11
9
  import { NativeSelect } from '../native-select/Component.js';
12
10
  import styles from './index.module.css.js';
@@ -22,13 +20,13 @@ function (props, ref) {
22
20
  var _b, _c;
23
21
  var dataTestId = props.dataTestId, className = props.className, fieldClassName = props.fieldClassName, optionGroupClassName = props.optionGroupClassName, optionsListClassName = props.optionsListClassName, optionClassName = props.optionClassName, popperClassName = props.popperClassName, options = props.options, _d = props.autocomplete, autocomplete = _d === void 0 ? false : _d, _e = props.multiple, multiple = _e === void 0 ? false : _e, _f = props.allowUnselect, allowUnselect = _f === void 0 ? false : _f, _g = props.disabled, disabled = _g === void 0 ? false : _g, _h = props.closeOnSelect, closeOnSelect = _h === void 0 ? !multiple : _h, _j = props.circularNavigation, circularNavigation = _j === void 0 ? false : _j, _k = props.nativeSelect, nativeSelect = _k === void 0 ? false : _k, _l = props.defaultOpen, defaultOpen = _l === void 0 ? false : _l, openProp = props.open, _m = props.popoverPosition, popoverPosition = _m === void 0 ? 'bottom-start' : _m, _o = props.preventFlip, preventFlip = _o === void 0 ? true : _o, _p = props.optionsListWidth, optionsListWidth = _p === void 0 ? 'content' : _p, name = props.name, id = props.id, selected = props.selected, _q = props.size, size = _q === void 0 ? 48 : _q, _r = props.optionsSize, optionsSize = _r === void 0 ? size : _r, error = props.error, hint = props.hint, block = props.block, label = props.label, labelView = props.labelView, placeholder = props.placeholder, _s = props.fieldProps, fieldProps = _s === void 0 ? {} : _s, _t = props.optionsListProps, optionsListProps = _t === void 0 ? {} : _t, _u = props.optionProps, optionProps = _u === void 0 ? {} : _u, _v = props.groupOptionProps, groupOptionProps = _v === void 0 ? {} : _v, _w = props.searchProps, searchProps = _w === void 0 ? {} : _w, _x = props.showSearch, showSearch = _x === void 0 ? false : _x, valueRenderer = props.valueRenderer, onChange = props.onChange, onOpen = props.onOpen, onFocus = props.onFocus, onBlur = props.onBlur, onScroll = props.onScroll, onClear = props.onClear, clear = props.clear, Arrow = props.Arrow, _y = props.Field, Field = _y === void 0 ? function () { return null; } : _y, _z = props.OptionsList, OptionsList = _z === void 0 ? function () { return null; } : _z, _0 = props.Optgroup, Optgroup = _0 === void 0 ? function () { return null; } : _0, _1 = props.Option, Option = _1 === void 0 ? function () { return null; } : _1, _2 = props.Search, Search = _2 === void 0 ? function () { return null; } : _2, updatePopover = props.updatePopover, zIndexPopover = props.zIndexPopover, _3 = props.showEmptyOptionsList, showEmptyOptionsList = _3 === void 0 ? false : _3, visibleOptions = props.visibleOptions, view = props.view, _4 = props.isBottomSheet, isBottomSheet = _4 === void 0 ? true : _4, footer = props.footer, swipeable = props.swipeable, modalProps = props.modalProps, popoverProps = props.popoverProps, modalFooterProps = props.modalFooterProps, modalHeaderProps = props.modalHeaderProps, bottomSheetProps = props.bottomSheetProps, Popover = props.Popover, ModalMobile = props.ModalMobile, BottomSheet = props.BottomSheet, limitDynamicOptionGroupSize = props.limitDynamicOptionGroupSize, _5 = props.environment, environment = _5 === void 0 ? isClient() ? window : undefined : _5;
24
22
  var shouldSearchBlurRef = useRef(true);
25
- var rootRef = useRef(null);
26
23
  var fieldRef = useRef(null);
27
24
  var listRef = useRef(null);
28
25
  var initiatorRef = useRef(null);
29
26
  var searchRef = useRef(null);
30
27
  var scrollableContainerRef = useRef(null);
31
28
  var onOpenRef = useRef(onOpen);
29
+ var optionsListCtrlRef = useRef(null);
32
30
  var _6 = React.useState(''), searchState = _6[0], setSearchState = _6[1];
33
31
  var _7 = typeof (searchProps === null || searchProps === void 0 ? void 0 : searchProps.value) === 'string'
34
32
  ? [searchProps.value, searchProps.onChange]
@@ -50,17 +48,26 @@ function (props, ref) {
50
48
  var scrollIntoView = function (node) {
51
49
  if (!node || view === 'mobile')
52
50
  return;
53
- requestAnimationFrame(function () {
54
- var actions = compute(node, {
55
- boundary: listRef.current,
56
- block: 'nearest',
57
- scrollMode: 'if-needed',
58
- });
59
- actions.forEach(function (action) {
60
- var el = action.el, top = action.top;
61
- el.scrollTop = top;
51
+ var optionsListCtrl = optionsListCtrlRef.current;
52
+ if (optionsListCtrl) {
53
+ var dataIndex = node.getAttribute('data-index');
54
+ if (dataIndex) {
55
+ optionsListCtrl.scrollToIndex(Number(dataIndex));
56
+ }
57
+ }
58
+ else {
59
+ requestAnimationFrame(function () {
60
+ var actions = compute(node, {
61
+ boundary: listRef.current,
62
+ block: 'nearest',
63
+ scrollMode: 'if-needed',
64
+ });
65
+ actions.forEach(function (action) {
66
+ var el = action.el, top = action.top;
67
+ el.scrollTop = top;
68
+ });
62
69
  });
63
- });
70
+ }
64
71
  };
65
72
  var useMultipleSelectionProps = {
66
73
  itemToString: itemToString,
@@ -269,6 +276,7 @@ function (props, ref) {
269
276
  var getOptionProps = function (option, index) {
270
277
  var _a;
271
278
  return (__assign(__assign({}, optionProps), { mobile: view === 'mobile', className: cn(optionClassName, (_a = {},
279
+ _a[styles.option] = view === 'desktop',
272
280
  _a[mobileStyles.option] = view === 'mobile',
273
281
  _a)), innerProps: getItemProps({
274
282
  index: index,
@@ -283,6 +291,7 @@ function (props, ref) {
283
291
  shouldSearchBlurRef.current = true;
284
292
  (_b = fieldRef.current) === null || _b === void 0 ? void 0 : _b.focus();
285
293
  },
294
+ 'data-index': index,
286
295
  }), multiple: multiple, index: index, option: option, size: optionsSize, disabled: option.disabled, highlighted: index === highlightedIndex, selected: selectedItems.some(function (_a) {
287
296
  var key = _a.key;
288
297
  return key === option.key;
@@ -298,35 +307,6 @@ function (props, ref) {
298
307
  }
299
308
  // eslint-disable-next-line react-hooks/exhaustive-deps
300
309
  }, []);
301
- var calcOptionsListWidth = useCallback(function () {
302
- if (view === 'desktop' && listRef.current) {
303
- var widthAttr = optionsListWidth === 'field' ? 'width' : 'minWidth';
304
- var optionsListMinWidth = rootRef.current
305
- ? rootRef.current.getBoundingClientRect().width
306
- : 0;
307
- listRef.current.removeAttribute('style');
308
- listRef.current.style[widthAttr] = "".concat(optionsListMinWidth, "px");
309
- }
310
- }, [view, optionsListWidth]);
311
- useEffect(function () {
312
- if (view === 'desktop') {
313
- var ResizeObserver_1 = window.ResizeObserver || ResizeObserver;
314
- var observer_1 = new ResizeObserver_1(calcOptionsListWidth);
315
- if (rootRef.current) {
316
- observer_1.observe(rootRef.current);
317
- }
318
- return function () {
319
- observer_1.disconnect();
320
- };
321
- }
322
- return fnUtils.noop;
323
- }, [view, calcOptionsListWidth, open, optionsListWidth]);
324
- useLayoutEffect_SAFE_FOR_SSR(calcOptionsListWidth, [
325
- open,
326
- optionsListWidth,
327
- filteredOptions,
328
- selectedItems,
329
- ]);
330
310
  var renderValue = function () {
331
311
  return selectedItems.map(function (option) { return (React.createElement("input", { type: 'hidden', name: name, value: option.key, key: option.key })); });
332
312
  };
@@ -387,19 +367,26 @@ function (props, ref) {
387
367
  return undefined;
388
368
  };
389
369
  var renderOptionsList = function () {
390
- var _a, _b, _c;
370
+ var _a, _b, _c, _d, _e, _f, _g;
391
371
  if (flatOptions.length === 0 && !showEmptyOptionsList && !showSearch)
392
372
  return null;
393
373
  var listProps = optionsListProps;
394
- return (React.createElement("div", __assign({}, menuProps, { ref: view === 'desktop' ? menuRef : undefined, className: cn(optionsListClassName, view === 'mobile' && mobileStyles.optionsListWrapper, view === 'desktop' && styles.optionsListWrapper) }),
395
- React.createElement(OptionsList, __assign({}, listProps, { ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn((_a = {}, _a[mobileStyles.optionsList] = view === 'mobile', _a), listProps.className), scrollbarClassName: cn((_b = {}, _b[mobileStyles.scrollbar] = view === 'mobile', _b), 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, (_c = {},
396
- _c[mobileStyles.optionGroup] = view === 'mobile',
397
- _c)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search, multiple: multiple, limitDynamicOptionGroupSize: limitDynamicOptionGroupSize, client: view })),
374
+ return (React.createElement("div", __assign({}, menuProps, { ref: view === 'desktop' ? menuRef : undefined, className: cn(optionsListClassName, view === 'mobile' && mobileStyles.optionsListWrapper, view === 'desktop' && styles.optionsListWrapper, (_a = {},
375
+ _a[styles.matchContent] = view === 'desktop' && optionsListWidth === 'content',
376
+ _a)) }),
377
+ React.createElement(OptionsList, __assign({}, listProps, { ctrlRef: optionsListCtrlRef, ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn((_b = {},
378
+ _b[mobileStyles.optionsList] = view === 'mobile',
379
+ _b), listProps.className), scrollbarClassName: cn((_c = {},
380
+ _c[styles.scrollbar] = view === 'desktop',
381
+ _c[mobileStyles.scrollbar] = view === 'mobile',
382
+ _c), listProps.scrollbarClassName), scrollableNodeClassName: cn((_d = {}, _d[styles.scrollable] = view === 'desktop', _d)), contentNodeClassName: cn((_e = {}, _e[styles.content] = view === 'desktop', _e)), listNodeClassName: cn((_f = {}, _f[styles.list] = view === 'desktop', _f)), 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, (_g = {},
383
+ _g[mobileStyles.optionGroup] = view === 'mobile',
384
+ _g)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search, multiple: multiple, limitDynamicOptionGroupSize: limitDynamicOptionGroupSize, client: view })),
398
385
  view === 'desktop' && React.createElement("div", { className: styles.optionsListBorder })));
399
386
  };
400
387
  var renderInPopover = function () {
401
388
  if (!nativeSelect && Popover) {
402
- return (React.createElement(Popover, __assign({}, popoverProps, { open: open, withTransition: false, anchorElement: fieldRef.current, position: popoverPosition, preventFlip: preventFlip, popperClassName: cn(styles.popoverInner, popperClassName), update: updatePopover, zIndex: zIndexPopover }), renderOptionsList()));
389
+ return (React.createElement(Popover, __assign({}, 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()));
403
390
  }
404
391
  return null;
405
392
  };
@@ -443,7 +430,7 @@ function (props, ref) {
443
430
  }
444
431
  return null;
445
432
  };
446
- return (React.createElement("div", __assign({}, (disabled && { 'aria-disabled': true }), { "aria-expanded": inputProps['aria-expanded'], "aria-haspopup": 'listbox', role: inputProps.role, className: cn(styles.component, (_a = {}, _a[styles.block] = block, _a), className), ref: rootRef, onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": getDataTestId(dataTestId) }),
433
+ return (React.createElement("div", __assign({}, (disabled && { 'aria-disabled': true }), { "aria-expanded": inputProps['aria-expanded'], "aria-haspopup": 'listbox', role: inputProps.role, className: cn(styles.component, (_a = {}, _a[styles.block] = block, _a), className), onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": getDataTestId(dataTestId) }),
447
434
  nativeSelect && renderNativeSelect(),
448
435
  React.createElement(Field, __assign({ selectedMultiple: selectedItems, selected: selectedItems[0], setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, multiple: multiple, open: open, disabled: disabled, size: size, placeholder: placeholder, label: label && React.createElement("span", __assign({}, 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: {
449
436
  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":["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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"}