@alfalab/core-components-select 15.0.3 → 15.1.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 (238) hide show
  1. package/Component.desktop.js +5 -2
  2. package/Component.mobile.d.ts +1 -1
  3. package/Component.mobile.js +9 -4
  4. package/Component.modal.mobile.d.ts +1 -1
  5. package/Component.modal.mobile.js +7 -2
  6. package/Component.responsive.js +4 -1
  7. package/components/arrow/Component.js +1 -1
  8. package/components/arrow/index.css +3 -3
  9. package/components/base-checkmark/Component.js +1 -1
  10. package/components/base-checkmark/index.css +4 -4
  11. package/components/base-option/Component.js +1 -1
  12. package/components/base-option/index.css +13 -13
  13. package/components/base-select/Component.js +73 -12
  14. package/components/base-select/index.css +16 -9
  15. package/components/base-select-mobile/Component.js +57 -15
  16. package/components/base-select-mobile/footer/Component.js +1 -1
  17. package/components/base-select-mobile/footer/index.css +5 -5
  18. package/components/base-select-mobile/index.css +26 -11
  19. package/components/base-select-mobile/index.js +3 -0
  20. package/components/checkmark/Component.js +1 -1
  21. package/components/checkmark/index.css +10 -10
  22. package/components/checkmark-mobile/Component.js +1 -1
  23. package/components/checkmark-mobile/index.css +6 -6
  24. package/components/field/Component.js +1 -1
  25. package/components/field/index.css +12 -12
  26. package/components/index.d.ts +1 -0
  27. package/components/index.js +4 -0
  28. package/components/optgroup/Component.js +1 -1
  29. package/components/optgroup/index.css +6 -6
  30. package/components/option/Component.js +1 -1
  31. package/components/option/index.css +20 -20
  32. package/components/options-list/Component.js +5 -5
  33. package/components/options-list/index.css +9 -9
  34. package/components/search/Component.d.ts +7 -0
  35. package/components/search/Component.js +24 -0
  36. package/components/search/index.css +28 -0
  37. package/components/search/index.d.ts +1 -0
  38. package/components/search/index.js +14 -0
  39. package/components/virtual-options-list/Component.js +1 -1
  40. package/components/virtual-options-list/index.css +15 -15
  41. package/cssm/Component.desktop.js +6 -2
  42. package/cssm/Component.mobile.d.ts +1 -1
  43. package/cssm/Component.mobile.js +10 -4
  44. package/cssm/Component.modal.mobile.d.ts +1 -1
  45. package/cssm/Component.modal.mobile.js +8 -2
  46. package/cssm/Component.responsive.js +5 -1
  47. package/cssm/components/base-select/Component.js +72 -11
  48. package/cssm/components/base-select/index.module.css +8 -1
  49. package/cssm/components/base-select-mobile/Component.js +57 -14
  50. package/cssm/components/base-select-mobile/index.js +4 -0
  51. package/cssm/components/base-select-mobile/index.module.css +15 -0
  52. package/cssm/components/index.d.ts +1 -0
  53. package/cssm/components/index.js +5 -0
  54. package/cssm/components/options-list/Component.js +4 -4
  55. package/cssm/components/search/Component.d.ts +7 -0
  56. package/cssm/components/search/Component.js +23 -0
  57. package/cssm/components/search/index.d.ts +1 -0
  58. package/cssm/components/search/index.js +15 -0
  59. package/cssm/components/search/index.module.css +27 -0
  60. package/cssm/desktop.js +4 -0
  61. package/{modern/hook-9ea9e32c.d.ts → cssm/hook-8abfea97.d.ts} +20 -5
  62. package/cssm/{hook-97e6e688.js → hook-d1f5dd40.js} +19 -5
  63. package/cssm/index.js +5 -1
  64. package/cssm/mobile.js +5 -1
  65. package/cssm/presets/index.d.ts +1 -1
  66. package/cssm/presets/index.js +1 -1
  67. package/cssm/presets/useSelectWithApply/hook.js +1 -1
  68. package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  69. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  70. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  71. package/cssm/shared.js +8 -1
  72. package/cssm/typings.d.ts +23 -1
  73. package/cssm/utils.d.ts +5 -2
  74. package/cssm/utils.js +34 -5
  75. package/desktop.js +3 -0
  76. package/esm/Component.desktop.js +5 -2
  77. package/esm/Component.mobile.d.ts +1 -1
  78. package/esm/Component.mobile.js +9 -4
  79. package/esm/Component.modal.mobile.d.ts +1 -1
  80. package/esm/Component.modal.mobile.js +7 -2
  81. package/esm/Component.responsive.js +4 -1
  82. package/esm/components/arrow/Component.js +1 -1
  83. package/esm/components/arrow/index.css +3 -3
  84. package/esm/components/base-checkmark/Component.js +1 -1
  85. package/esm/components/base-checkmark/index.css +4 -4
  86. package/esm/components/base-option/Component.js +1 -1
  87. package/esm/components/base-option/index.css +13 -13
  88. package/esm/components/base-select/Component.js +74 -13
  89. package/esm/components/base-select/index.css +16 -9
  90. package/esm/components/base-select-mobile/Component.js +58 -16
  91. package/esm/components/base-select-mobile/footer/Component.js +1 -1
  92. package/esm/components/base-select-mobile/footer/index.css +5 -5
  93. package/esm/components/base-select-mobile/index.css +26 -11
  94. package/esm/components/base-select-mobile/index.js +3 -0
  95. package/esm/components/checkmark/Component.js +1 -1
  96. package/esm/components/checkmark/index.css +10 -10
  97. package/esm/components/checkmark-mobile/Component.js +1 -1
  98. package/esm/components/checkmark-mobile/index.css +6 -6
  99. package/esm/components/field/Component.js +1 -1
  100. package/esm/components/field/index.css +12 -12
  101. package/esm/components/index.d.ts +1 -0
  102. package/esm/components/index.js +3 -0
  103. package/esm/components/optgroup/Component.js +1 -1
  104. package/esm/components/optgroup/index.css +6 -6
  105. package/esm/components/option/Component.js +1 -1
  106. package/esm/components/option/index.css +20 -20
  107. package/esm/components/options-list/Component.js +5 -5
  108. package/esm/components/options-list/index.css +9 -9
  109. package/esm/components/search/Component.d.ts +7 -0
  110. package/esm/components/search/Component.js +15 -0
  111. package/esm/components/search/index.css +28 -0
  112. package/esm/components/search/index.d.ts +1 -0
  113. package/esm/components/search/index.js +6 -0
  114. package/esm/components/virtual-options-list/Component.js +1 -1
  115. package/esm/components/virtual-options-list/index.css +15 -15
  116. package/esm/desktop.js +3 -0
  117. package/{hook-9ea9e32c.d.ts → esm/hook-8abfea97.d.ts} +20 -5
  118. package/esm/{hook-d40b4e10.js → hook-990a584e.js} +21 -7
  119. package/esm/index.js +4 -1
  120. package/esm/mobile.js +4 -1
  121. package/esm/presets/index.d.ts +1 -1
  122. package/esm/presets/index.js +1 -1
  123. package/esm/presets/useSelectWithApply/hook.js +1 -1
  124. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  125. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  126. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  127. package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  128. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  129. package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  130. package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  131. package/esm/presets/useSelectWithLoading/hook.js +1 -1
  132. package/esm/presets/useSelectWithLoading/index.css +2 -2
  133. package/esm/shared.js +5 -2
  134. package/esm/typings.d.ts +23 -1
  135. package/esm/utils.d.ts +5 -2
  136. package/esm/utils.js +33 -6
  137. package/{cssm/hook-9ea9e32c.d.ts → hook-8abfea97.d.ts} +20 -5
  138. package/{hook-43a35a80.js → hook-c0d8bff3.js} +19 -5
  139. package/index.js +4 -1
  140. package/mobile.js +4 -1
  141. package/modern/Component.desktop.js +5 -2
  142. package/modern/Component.mobile.d.ts +1 -1
  143. package/modern/Component.mobile.js +9 -4
  144. package/modern/Component.modal.mobile.d.ts +1 -1
  145. package/modern/Component.modal.mobile.js +7 -2
  146. package/modern/Component.responsive.js +4 -1
  147. package/modern/components/arrow/Component.js +1 -1
  148. package/modern/components/arrow/index.css +3 -3
  149. package/modern/components/base-checkmark/Component.js +1 -1
  150. package/modern/components/base-checkmark/index.css +4 -4
  151. package/modern/components/base-option/Component.js +1 -1
  152. package/modern/components/base-option/index.css +13 -13
  153. package/modern/components/base-select/Component.js +62 -9
  154. package/modern/components/base-select/index.css +16 -9
  155. package/modern/components/base-select-mobile/Component.js +48 -13
  156. package/modern/components/base-select-mobile/footer/Component.js +1 -1
  157. package/modern/components/base-select-mobile/footer/index.css +5 -5
  158. package/modern/components/base-select-mobile/index.css +26 -11
  159. package/modern/components/base-select-mobile/index.js +3 -0
  160. package/modern/components/checkmark/Component.js +1 -1
  161. package/modern/components/checkmark/index.css +10 -10
  162. package/modern/components/checkmark-mobile/Component.js +1 -1
  163. package/modern/components/checkmark-mobile/index.css +6 -6
  164. package/modern/components/field/Component.js +1 -1
  165. package/modern/components/field/index.css +12 -12
  166. package/modern/components/index.d.ts +1 -0
  167. package/modern/components/index.js +3 -0
  168. package/modern/components/optgroup/Component.js +1 -1
  169. package/modern/components/optgroup/index.css +6 -6
  170. package/modern/components/option/Component.js +1 -1
  171. package/modern/components/option/index.css +20 -20
  172. package/modern/components/options-list/Component.js +5 -5
  173. package/modern/components/options-list/index.css +9 -9
  174. package/modern/components/search/Component.d.ts +7 -0
  175. package/modern/components/search/Component.js +11 -0
  176. package/modern/components/search/index.css +28 -0
  177. package/modern/components/search/index.d.ts +1 -0
  178. package/modern/components/search/index.js +5 -0
  179. package/modern/components/virtual-options-list/Component.js +1 -1
  180. package/modern/components/virtual-options-list/index.css +15 -15
  181. package/modern/desktop.js +3 -0
  182. package/modern/{hook-d771f2ed.js → hook-101e5d49.js} +23 -6
  183. package/{esm/hook-9ea9e32c.d.ts → modern/hook-8abfea97.d.ts} +20 -5
  184. package/modern/index.js +4 -1
  185. package/modern/mobile.js +4 -1
  186. package/modern/presets/index.d.ts +1 -1
  187. package/modern/presets/index.js +1 -1
  188. package/modern/presets/useSelectWithApply/hook.js +1 -1
  189. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  190. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  191. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  192. package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  193. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  194. package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  195. package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  196. package/modern/presets/useSelectWithLoading/hook.js +1 -1
  197. package/modern/presets/useSelectWithLoading/index.css +2 -2
  198. package/modern/shared.js +5 -2
  199. package/modern/typings.d.ts +23 -1
  200. package/modern/utils.d.ts +5 -2
  201. package/modern/utils.js +34 -6
  202. package/package.json +6 -6
  203. package/presets/index.d.ts +1 -1
  204. package/presets/index.js +1 -1
  205. package/presets/useSelectWithApply/hook.js +1 -1
  206. package/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  207. package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  208. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  209. package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  210. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  211. package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  212. package/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  213. package/presets/useSelectWithLoading/hook.js +1 -1
  214. package/presets/useSelectWithLoading/index.css +2 -2
  215. package/shared.js +7 -1
  216. package/src/Component.desktop.tsx +4 -1
  217. package/src/Component.mobile.tsx +7 -0
  218. package/src/Component.modal.mobile.tsx +4 -0
  219. package/src/components/base-select/Component.tsx +101 -10
  220. package/src/components/base-select/index.module.css +12 -0
  221. package/src/components/base-select-mobile/Component.tsx +84 -12
  222. package/src/components/base-select-mobile/index.module.css +24 -0
  223. package/src/components/index.ts +1 -0
  224. package/src/components/options-list/Component.tsx +8 -3
  225. package/src/components/search/Component.tsx +31 -0
  226. package/src/components/search/index.module.css +6 -0
  227. package/src/components/search/index.ts +1 -0
  228. package/src/presets/useSelectWithApply/hook.tsx +32 -3
  229. package/src/presets/useSelectWithApply/options-list-with-apply/Component.tsx +13 -1
  230. package/src/typings.ts +27 -0
  231. package/src/utils.ts +37 -5
  232. package/typings.d.ts +23 -1
  233. package/utils.d.ts +5 -2
  234. package/utils.js +34 -5
  235. /package/cssm/{hook-97e6e688.d.ts → hook-d1f5dd40.d.ts} +0 -0
  236. /package/esm/{hook-d40b4e10.d.ts → hook-990a584e.d.ts} +0 -0
  237. /package/{hook-43a35a80.d.ts → hook-c0d8bff3.d.ts} +0 -0
  238. /package/modern/{hook-d771f2ed.d.ts → hook-101e5d49.d.ts} +0 -0
@@ -16,6 +16,7 @@ var components_field_Component = require('../field/Component.js');
16
16
  var components_optgroup_Component = require('../optgroup/Component.js');
17
17
  var components_option_Component = require('../option/Component.js');
18
18
  var components_optionsList_Component = require('../options-list/Component.js');
19
+ var components_search_Component = require('../search/Component.js');
19
20
  require('@alfalab/icons-glyph/ChevronDownMIcon');
20
21
  require('@alfalab/hooks');
21
22
  require('../checkmark/Component.js');
@@ -26,6 +27,8 @@ require('@alfalab/icons-glyph/CheckmarkMIcon');
26
27
  require('../checkmark-mobile/Component.js');
27
28
  require('@alfalab/core-components-scrollbar');
28
29
  require('../../consts.js');
30
+ require('@alfalab/core-components-input');
31
+ require('@alfalab/icons-glyph/MagnifierMIcon');
29
32
 
30
33
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
31
34
 
@@ -33,19 +36,29 @@ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
33
36
  var mergeRefs__default = /*#__PURE__*/_interopDefaultCompat(mergeRefs);
34
37
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
35
38
 
36
- var styles = {"component":"select__component_gwaq2","sheet":"select__sheet_gwaq2","sheetContent":"select__sheetContent_gwaq2","modalContent":"select__modalContent_gwaq2","sheetContainer":"select__sheetContainer_gwaq2","block":"select__block_gwaq2","option":"select__option_gwaq2","optionGroup":"select__optionGroup_gwaq2"};
39
+ var styles = {"component":"select__component_xrhpa","sheet":"select__sheet_xrhpa","sheetContent":"select__sheetContent_xrhpa","modalContent":"select__modalContent_xrhpa","sheetContainer":"select__sheetContainer_xrhpa","block":"select__block_xrhpa","optionsListWrapper":"select__optionsListWrapper_xrhpa","optionsList":"select__optionsList_xrhpa","scrollbar":"select__scrollbar_xrhpa","emptySearchPlaceholder":"select__emptySearchPlaceholder_xrhpa","search":"select__search_xrhpa","option":"select__option_xrhpa","optionGroup":"select__optionGroup_xrhpa"};
37
40
  require('./index.css')
38
41
 
39
42
  var BaseSelectMobile = React.forwardRef(function (_a, ref) {
40
43
  var _b;
41
- var dataTestId = _a.dataTestId, className = _a.className, fieldClassName = _a.fieldClassName, optionsListClassName = _a.optionsListClassName, optionClassName = _a.optionClassName, optionGroupClassName = _a.optionGroupClassName, optionsListProps = _a.optionsListProps, _c = _a.options, options = _c === void 0 ? [] : _c, _d = _a.autocomplete, autocomplete = _d === void 0 ? false : _d, _e = _a.multiple, multiple = _e === void 0 ? false : _e, _f = _a.allowUnselect, allowUnselect = _f === void 0 ? false : _f, _g = _a.disabled, disabled = _g === void 0 ? false : _g, _h = _a.closeOnSelect, closeOnSelect = _h === void 0 ? !multiple : _h, _j = _a.circularNavigation, circularNavigation = _j === void 0 ? false : _j, _k = _a.defaultOpen, defaultOpen = _k === void 0 ? false : _k, openProp = _a.open, _l = _a.optionsListWidth, optionsListWidth = _l === void 0 ? 'content' : _l, name = _a.name, id = _a.id, _m = _a.selected, selected = _m === void 0 ? [] : _m, _o = _a.size, size = _o === void 0 ? 'm' : _o, _p = _a.optionsSize, optionsSize = _p === void 0 ? 'm' : _p, error = _a.error, hint = _a.hint, block = _a.block, label = _a.label, labelView = _a.labelView, placeholder = _a.placeholder, _q = _a.fieldProps, fieldProps = _q === void 0 ? {} : _q, _r = _a.optionProps, optionProps = _r === void 0 ? {} : _r, valueRenderer = _a.valueRenderer, onChange = _a.onChange, onOpen = _a.onOpen, onFocus = _a.onFocus, onBlur = _a.onBlur, _s = _a.Arrow, Arrow = _s === void 0 ? components_arrow_Component.Arrow : _s, _t = _a.Field, Field = _t === void 0 ? components_field_Component.Field : _t, _u = _a.Optgroup, Optgroup = _u === void 0 ? components_optgroup_Component.Optgroup : _u, _v = _a.Option, Option = _v === void 0 ? components_option_Component.Option : _v, _w = _a.OptionsList, OptionsList = _w === void 0 ? components_optionsList_Component.OptionsList : _w, swipeable = _a.swipeable, footer = _a.footer, isBottomSheet = _a.isBottomSheet, bottomSheetProps = _a.bottomSheetProps, modalProps = _a.modalProps, modalHeaderProps = _a.modalHeaderProps, modalFooterProps = _a.modalFooterProps, _x = _a.showEmptyOptionsList, showEmptyOptionsList = _x === void 0 ? false : _x;
44
+ var dataTestId = _a.dataTestId, className = _a.className, fieldClassName = _a.fieldClassName, optionsListClassName = _a.optionsListClassName, optionClassName = _a.optionClassName, optionGroupClassName = _a.optionGroupClassName, optionsListProps = _a.optionsListProps, _c = _a.options, options = _c === void 0 ? [] : _c, _d = _a.autocomplete, autocomplete = _d === void 0 ? false : _d, _e = _a.multiple, multiple = _e === void 0 ? false : _e, _f = _a.allowUnselect, allowUnselect = _f === void 0 ? false : _f, _g = _a.disabled, disabled = _g === void 0 ? false : _g, _h = _a.closeOnSelect, closeOnSelect = _h === void 0 ? !multiple : _h, _j = _a.circularNavigation, circularNavigation = _j === void 0 ? false : _j, _k = _a.defaultOpen, defaultOpen = _k === void 0 ? false : _k, openProp = _a.open, _l = _a.optionsListWidth, optionsListWidth = _l === void 0 ? 'content' : _l, name = _a.name, id = _a.id, _m = _a.selected, selected = _m === void 0 ? [] : _m, _o = _a.size, size = _o === void 0 ? 'm' : _o, _p = _a.optionsSize, optionsSize = _p === void 0 ? 'm' : _p, error = _a.error, hint = _a.hint, block = _a.block, label = _a.label, labelView = _a.labelView, placeholder = _a.placeholder, _q = _a.fieldProps, fieldProps = _q === void 0 ? {} : _q, _r = _a.optionProps, optionProps = _r === void 0 ? {} : _r, _s = _a.searchProps, searchProps = _s === void 0 ? {} : _s, _t = _a.showSearch, showSearch = _t === void 0 ? false : _t, valueRenderer = _a.valueRenderer, onChange = _a.onChange, onOpen = _a.onOpen, onFocus = _a.onFocus, onBlur = _a.onBlur, _u = _a.Arrow, Arrow = _u === void 0 ? components_arrow_Component.Arrow : _u, _v = _a.Field, Field = _v === void 0 ? components_field_Component.Field : _v, _w = _a.Optgroup, Optgroup = _w === void 0 ? components_optgroup_Component.Optgroup : _w, _x = _a.Option, Option = _x === void 0 ? components_option_Component.Option : _x, _y = _a.OptionsList, OptionsList = _y === void 0 ? components_optionsList_Component.OptionsList : _y, _z = _a.Search, Search = _z === void 0 ? components_search_Component.Search : _z, swipeable = _a.swipeable, footer = _a.footer, isBottomSheet = _a.isBottomSheet, bottomSheetProps = _a.bottomSheetProps, modalProps = _a.modalProps, modalHeaderProps = _a.modalHeaderProps, modalFooterProps = _a.modalFooterProps, _0 = _a.showEmptyOptionsList, showEmptyOptionsList = _0 === void 0 ? false : _0;
42
45
  var rootRef = React.useRef(null);
43
46
  var fieldRef = React.useRef(null);
44
47
  var listRef = React.useRef(null);
45
48
  var initiatorRef = React.useRef(null);
46
49
  var alreadyClickedRef = React.useRef(false);
50
+ var searchRef = React.useRef(null);
51
+ var _1 = React__default.default.useState(''), searchState = _1[0], setSearchState = _1[1];
52
+ var _2 = typeof (searchProps === null || searchProps === void 0 ? void 0 : searchProps.value) === 'string'
53
+ ? [searchProps.value, searchProps.onChange]
54
+ : [searchState, setSearchState], search = _2[0], setSearch = _2[1];
47
55
  var itemToString = function (option) { return (option ? option.key : ''); };
48
- var _y = React.useMemo(function () { return utils.processOptions(options, selected); }, [options, selected]), flatOptions = _y.flatOptions, selectedOptions = _y.selectedOptions;
56
+ var accessor = searchProps.accessor || utils.defaultAccessor;
57
+ var _3 = React.useMemo(function () {
58
+ return utils.processOptions(options, selected, function (option) {
59
+ return utils.defaultFilterFn(accessor(option), search);
60
+ });
61
+ }, [accessor, options, search, selected]), filteredOptions = _3.filteredOptions, flatOptions = _3.flatOptions, selectedOptions = _3.selectedOptions;
49
62
  var scrollableContainerRef = React.useRef(null);
50
63
  var useMultipleSelectionProps = {
51
64
  itemToString: itemToString,
@@ -73,8 +86,8 @@ var BaseSelectMobile = React.forwardRef(function (_a, ref) {
73
86
  if (selected !== undefined) {
74
87
  useMultipleSelectionProps.selectedItems = selectedOptions;
75
88
  }
76
- var _z = downshift.useMultipleSelection(useMultipleSelectionProps), selectedItems = _z.selectedItems, addSelectedItem = _z.addSelectedItem, setSelectedItems = _z.setSelectedItems, removeSelectedItem = _z.removeSelectedItem, getDropdownProps = _z.getDropdownProps;
77
- var _0 = downshift.useCombobox({
89
+ var _4 = downshift.useMultipleSelection(useMultipleSelectionProps), selectedItems = _4.selectedItems, addSelectedItem = _4.addSelectedItem, setSelectedItems = _4.setSelectedItems, removeSelectedItem = _4.removeSelectedItem, getDropdownProps = _4.getDropdownProps;
90
+ var _5 = downshift.useCombobox({
78
91
  id: id,
79
92
  isOpen: openProp,
80
93
  circularNavigation: circularNavigation,
@@ -97,6 +110,18 @@ var BaseSelectMobile = React.forwardRef(function (_a, ref) {
97
110
  });
98
111
  }, 0);
99
112
  }
113
+ if (showSearch) {
114
+ if (isOpen) {
115
+ setTimeout(function () {
116
+ var _a;
117
+ (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.focus();
118
+ // BottomSheet transition duration
119
+ }, 500);
120
+ }
121
+ else {
122
+ setSearch === null || setSearch === void 0 ? void 0 : setSearch('');
123
+ }
124
+ }
100
125
  },
101
126
  stateReducer: function (state, actionAndChanges) {
102
127
  var type = actionAndChanges.type, changes = actionAndChanges.changes;
@@ -108,11 +133,13 @@ var BaseSelectMobile = React.forwardRef(function (_a, ref) {
108
133
  case downshift.useCombobox.stateChangeTypes.ItemClick:
109
134
  initiatorRef.current = selectedItem;
110
135
  if (selectedItem && !selectedItem.disabled && !alreadyClickedRef.current) {
111
- alreadyClickedRef.current = true;
112
136
  // TODO!!! Проблема downshift + React 18. ItemClick срабатывает дважды. См https://github.com/downshift-js/downshift/issues/1384
113
- setTimeout(function () {
114
- alreadyClickedRef.current = false;
115
- });
137
+ if (React__default.default.version.indexOf('18') === 0) {
138
+ alreadyClickedRef.current = true;
139
+ setTimeout(function () {
140
+ alreadyClickedRef.current = false;
141
+ });
142
+ }
116
143
  var alreadySelected = selectedItems.includes(selectedItem);
117
144
  var allowRemove = allowUnselect || (multiple && selectedItems.length > 1);
118
145
  if (alreadySelected && allowRemove) {
@@ -141,7 +168,7 @@ var BaseSelectMobile = React.forwardRef(function (_a, ref) {
141
168
  return changes;
142
169
  }
143
170
  },
144
- }), open = _0.isOpen, getMenuProps = _0.getMenuProps, getInputProps = _0.getInputProps, getItemProps = _0.getItemProps, getComboboxProps = _0.getComboboxProps, getLabelProps = _0.getLabelProps, highlightedIndex = _0.highlightedIndex, toggleMenu = _0.toggleMenu, openMenu = _0.openMenu;
171
+ }), open = _5.isOpen, getMenuProps = _5.getMenuProps, getInputProps = _5.getInputProps, getItemProps = _5.getItemProps, getComboboxProps = _5.getComboboxProps, getLabelProps = _5.getLabelProps, highlightedIndex = _5.highlightedIndex, toggleMenu = _5.toggleMenu, openMenu = _5.openMenu;
145
172
  var menuProps = getMenuProps({ ref: listRef }, { suppressRefError: true });
146
173
  var inputProps = getInputProps(getDropdownProps({ ref: mergeRefs__default.default([ref, fieldRef]) }));
147
174
  var handleFieldFocus = function (event) {
@@ -204,11 +231,24 @@ var BaseSelectMobile = React.forwardRef(function (_a, ref) {
204
231
  var renderValue = function () {
205
232
  return selectedItems.map(function (option) { return (React__default.default.createElement("input", { type: 'hidden', name: name, value: option.key, key: option.key })); });
206
233
  };
234
+ var renderSearch = function () {
235
+ return showSearch && (React__default.default.createElement(Search, tslib.__assign({}, searchProps === null || searchProps === void 0 ? void 0 : searchProps.componentProps, { value: search, onChange: function (_, payload) { return setSearch === null || setSearch === void 0 ? void 0 : setSearch(payload.value); }, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'search'), onClear: function () { return setSearch === null || setSearch === void 0 ? void 0 : setSearch(''); }, className: styles.search, ref: searchRef })));
236
+ };
237
+ var emptyPlaceholder = optionsListProps.emptyPlaceholder;
238
+ var renderEmptyPlaceholder = function () {
239
+ if (emptyPlaceholder) {
240
+ return emptyPlaceholder;
241
+ }
242
+ if (showSearch) {
243
+ return React__default.default.createElement("div", { className: styles.emptySearchPlaceholder }, "\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0448\u043B\u043E\u0441\u044C");
244
+ }
245
+ return undefined;
246
+ };
207
247
  var renderOptionsList = function () {
208
- if (flatOptions.length === 0 && !showEmptyOptionsList)
248
+ if (flatOptions.length === 0 && !showEmptyOptionsList && !showSearch)
209
249
  return null;
210
- return (React__default.default.createElement("div", tslib.__assign({}, menuProps, { className: optionsListClassName }),
211
- React__default.default.createElement(OptionsList, tslib.__assign({}, optionsListProps, { ref: scrollableContainerRef, optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: options, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, getOptionProps: getOptionProps, visibleOptions: 0, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'options-list'), optionGroupClassName: cn__default.default(styles.optionGroup, optionGroupClassName) }))));
250
+ return (React__default.default.createElement("div", tslib.__assign({}, menuProps, { className: cn__default.default(styles.optionsListWrapper, optionsListClassName) }),
251
+ React__default.default.createElement(OptionsList, tslib.__assign({}, optionsListProps, { ref: scrollableContainerRef, className: styles.optionsList, scrollbarClassName: styles.scrollbar, optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, getOptionProps: getOptionProps, visibleOptions: 0, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'options-list'), optionGroupClassName: cn__default.default(styles.optionGroup, optionGroupClassName), emptyPlaceholder: renderEmptyPlaceholder() }))));
212
252
  };
213
253
  return (React__default.default.createElement("div", tslib.__assign({}, getComboboxProps(tslib.__assign(tslib.__assign({ ref: rootRef }, (disabled && { 'aria-disabled': true })), { className: cn__default.default(styles.component, (_b = {}, _b[styles.block] = block, _b), className) })), { onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": coreComponentsShared.getDataTestId(dataTestId) }),
214
254
  React__default.default.createElement(Field, tslib.__assign({ selectedMultiple: selectedItems, selected: selectedItems[0], setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, multiple: multiple, open: open, disabled: disabled, size: size, placeholder: placeholder, label: label && React__default.default.createElement("span", tslib.__assign({}, getLabelProps()), label), labelView: labelView, Arrow: Arrow && React__default.default.createElement(Arrow, { open: open }), error: error, hint: hint, valueRenderer: valueRenderer, className: fieldClassName, innerProps: {
@@ -225,7 +265,9 @@ var BaseSelectMobile = React.forwardRef(function (_a, ref) {
225
265
  : undefined,
226
266
  }, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'field') }, fieldProps)),
227
267
  name && renderValue(),
228
- isBottomSheet ? (React__default.default.createElement(coreComponentsBottomSheet.BottomSheet, tslib.__assign({ open: open, onClose: handleClose, className: styles.sheet, contentClassName: styles.sheetContent, containerClassName: styles.sheetContainer, title: label || placeholder, actionButton: footer, stickyHeader: true, hasCloser: true, swipeable: swipeable, scrollableContainerRef: scrollableContainerRef }, bottomSheetProps), renderOptionsList())) : (React__default.default.createElement(mobile.ModalMobile, tslib.__assign({ open: open, hasCloser: true }, modalProps, { onClose: function () {
268
+ isBottomSheet ? (React__default.default.createElement(coreComponentsBottomSheet.BottomSheet, tslib.__assign({ open: open, onClose: handleClose, className: styles.sheet, contentClassName: styles.sheetContent, containerClassName: styles.sheetContainer, title: label || placeholder, actionButton: footer, stickyHeader: true, hasCloser: true, swipeable: swipeable, scrollableContainerRef: scrollableContainerRef, initialHeight: showSearch ? 'full' : 'default' }, bottomSheetProps, { bottomAddons: React__default.default.createElement(React__default.default.Fragment, null,
269
+ renderSearch(), bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 :
270
+ bottomSheetProps.bottomAddons) }), renderOptionsList())) : (React__default.default.createElement(mobile.ModalMobile, tslib.__assign({ open: open, hasCloser: true }, modalProps, { onClose: function () {
229
271
  var _a;
230
272
  var args = [];
231
273
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -237,7 +279,7 @@ var BaseSelectMobile = React.forwardRef(function (_a, ref) {
237
279
  scrollableContainerRef,
238
280
  modalProps === null || modalProps === void 0 ? void 0 : modalProps.ref,
239
281
  ]) }),
240
- React__default.default.createElement(mobile.ModalMobile.Header, tslib.__assign({ hasCloser: true, sticky: true }, modalHeaderProps), label || placeholder),
282
+ React__default.default.createElement(mobile.ModalMobile.Header, tslib.__assign({ hasCloser: true, sticky: true, bottomAddons: renderSearch() }, modalHeaderProps), label || placeholder),
241
283
  React__default.default.createElement(mobile.ModalMobile.Content, { flex: true, className: styles.modalContent }, renderOptionsList()),
242
284
  (modalFooterProps === null || modalFooterProps === void 0 ? void 0 : modalFooterProps.children) && React__default.default.createElement(mobile.ModalMobile.Footer, tslib.__assign({}, modalFooterProps))))));
243
285
  });
@@ -12,7 +12,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
12
12
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
13
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
14
14
 
15
- var styles = {"footer":"select__footer_1qcig","button":"select__button_1qcig","highlighted":"select__highlighted_1qcig"};
15
+ var styles = {"footer":"select__footer_v1eup","button":"select__button_v1eup","highlighted":"select__highlighted_v1eup"};
16
16
  require('./index.css')
17
17
 
18
18
  var Footer = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: 5rypk */
1
+ /* hash: z3ymn */
2
2
  :root {
3
3
  } /* deprecated */ :root {
4
4
  --color-light-bg-primary: #fff;
@@ -26,17 +26,17 @@
26
26
  /* checkmark */
27
27
 
28
28
  /* optgroup */
29
- } .select__footer_1qcig {
29
+ } .select__footer_v1eup {
30
30
  display: flex;
31
31
  box-sizing: border-box;
32
32
  width: 100%;
33
33
  padding: var(--gap-m) var(--gap-m);
34
34
  background-color: var(--color-light-bg-primary)
35
- } .select__footer_1qcig .select__button_1qcig:first-of-type {
35
+ } .select__footer_v1eup .select__button_v1eup:first-of-type {
36
36
  margin-right: var(--gap-m);
37
- } .select__button_1qcig {
37
+ } .select__button_v1eup {
38
38
  width: 50%;
39
- } .select__highlighted_1qcig {
39
+ } .select__highlighted_v1eup {
40
40
  border-top: 1px solid var(--color-light-border-primary);
41
41
  background-color: var(--color-light-bg-primary);
42
42
  }
@@ -1,4 +1,4 @@
1
- /* hash: wlgnq */
1
+ /* hash: 1nhke */
2
2
  :root {
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -14,6 +14,7 @@
14
14
  } :root {
15
15
  --gap-2xs: 4px;
16
16
  --gap-xs: 8px;
17
+ --gap-s: 12px;
17
18
  --gap-m: 16px;
18
19
  --gap-l: 20px;
19
20
  } :root {
@@ -27,29 +28,43 @@
27
28
  /* checkmark */
28
29
 
29
30
  /* optgroup */
30
- } .select__component_gwaq2 {
31
+ } .select__component_xrhpa {
31
32
  width: max-content;
32
33
  position: relative;
33
34
  outline: 0;
34
- } .select__sheet_gwaq2 {
35
+ } .select__sheet_xrhpa {
35
36
  overflow: hidden;
36
- } .select__sheetContent_gwaq2 {
37
+ } .select__sheetContent_xrhpa {
37
38
  padding: 0
38
- } .select__sheetContent_gwaq2 .select__modalContent_gwaq2 {
39
+ } .select__sheetContent_xrhpa .select__modalContent_xrhpa {
39
40
  padding: 0;
40
- } .select__sheetContainer_gwaq2 {
41
+ display: flex;
42
+ flex-direction: column;
43
+ } .select__sheetContainer_xrhpa {
41
44
  padding: 0;
42
- } .select__block_gwaq2 {
45
+ } .select__block_xrhpa {
43
46
  width: 100%;
47
+ } .select__optionsListWrapper_xrhpa {
48
+ flex: 1;
49
+ } .select__optionsList_xrhpa {
50
+ height: 100%;
51
+ display: flex;
52
+ flex-direction: column;
53
+ } .select__scrollbar_xrhpa {
54
+ flex: 1;
55
+ } .select__emptySearchPlaceholder_xrhpa {
56
+ text-align: center;
57
+ } .select__search_xrhpa {
58
+ padding: var(--gap-m) var(--gap-xs) var(--gap-s);
44
59
  } /* width: max-content; fix for IE */ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
45
- .select__component_gwaq2 {
60
+ .select__component_xrhpa {
46
61
  float: left;
47
62
  clear: left;
48
63
  }
49
- } .select__option_gwaq2 {
64
+ } .select__option_xrhpa {
50
65
  padding: var(--gap-2xs) var(--gap-l) var(--gap-2xs) var(--gap-m)
51
- } .select__option_gwaq2:before {
66
+ } .select__option_xrhpa:before {
52
67
  display: none;
53
- } .select__optionGroup_gwaq2 {
68
+ } .select__optionGroup_xrhpa {
54
69
  padding: var(--gap-m) var(--gap-m) var(--gap-xs);
55
70
  }
@@ -27,6 +27,9 @@ require('../checkmark-mobile/Component.js');
27
27
  require('../options-list/Component.js');
28
28
  require('@alfalab/core-components-scrollbar');
29
29
  require('../../consts.js');
30
+ require('../search/Component.js');
31
+ require('@alfalab/core-components-input');
32
+ require('@alfalab/icons-glyph/MagnifierMIcon');
30
33
 
31
34
 
32
35
 
@@ -15,7 +15,7 @@ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
15
15
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
16
16
  var CheckmarkMIcon__default = /*#__PURE__*/_interopDefaultCompat(CheckmarkMIcon);
17
17
 
18
- var styles = {"checkmark":"select__checkmark_qyxrd","after":"select__after_qyxrd","single":"select__single_qyxrd","selected":"select__selected_qyxrd","before":"select__before_qyxrd","multiple":"select__multiple_qyxrd","colorIcon":"select__colorIcon_qyxrd"};
18
+ var styles = {"checkmark":"select__checkmark_6esqi","after":"select__after_6esqi","single":"select__single_6esqi","selected":"select__selected_6esqi","before":"select__before_6esqi","multiple":"select__multiple_6esqi","colorIcon":"select__colorIcon_6esqi"};
19
19
  require('./index.css')
20
20
 
21
21
  var Checkmark = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: gu7od */
1
+ /* hash: tznxp */
2
2
  :root {
3
3
  } /* deprecated */ :root {
4
4
  --color-light-graphic-positive: #2fc26e;
@@ -39,12 +39,12 @@
39
39
  --select-checkmark-border-radius: var(--border-radius-circle);
40
40
 
41
41
  /* optgroup */
42
- } .select__checkmark_qyxrd {
42
+ } .select__checkmark_6esqi {
43
43
  flex-shrink: 0;
44
44
  margin: var(--select-checkmark-margin)
45
- } .select__checkmark_qyxrd.select__after_qyxrd {
45
+ } .select__checkmark_6esqi.select__after_6esqi {
46
46
  margin: var(--select-checkmark-margin-after);
47
- } .select__single_qyxrd {
47
+ } .select__single_6esqi {
48
48
  display: flex;
49
49
  align-items: center;
50
50
  justify-content: center;
@@ -54,17 +54,17 @@
54
54
  border-radius: var(--select-checkmark-border-radius);
55
55
  width: var(--select-checkmark-size);
56
56
  height: var(--select-checkmark-size)
57
- } .select__single_qyxrd.select__selected_qyxrd {
57
+ } .select__single_6esqi.select__selected_6esqi {
58
58
  opacity: 1;
59
- } .select__before_qyxrd {
59
+ } .select__before_6esqi {
60
60
  display: var(--select-checkmark-before-display)
61
- } .select__before_qyxrd.select__multiple_qyxrd {
61
+ } .select__before_6esqi.select__multiple_6esqi {
62
62
  margin-right: var(--gap-s);
63
63
  display: var(--select-checkmark-before-display-multiple);
64
- } .select__after_qyxrd {
64
+ } .select__after_6esqi {
65
65
  display: var(--select-checkmark-after-display)
66
- } .select__after_qyxrd.select__single_qyxrd {
66
+ } .select__after_6esqi.select__single_6esqi {
67
67
  display: var(--select-checkmark-after-display-single);
68
- } .select__colorIcon_qyxrd {
68
+ } .select__colorIcon_6esqi {
69
69
  color: var(--color-light-graphic-positive);
70
70
  }
@@ -11,7 +11,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
11
11
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
12
12
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
13
13
 
14
- var styles = {"checkmark":"select__checkmark_z5bor","selected":"select__selected_z5bor","displayIcon":"select__displayIcon_z5bor","displayBadge":"select__displayBadge_z5bor"};
14
+ var styles = {"checkmark":"select__checkmark_1cgjt","selected":"select__selected_1cgjt","displayIcon":"select__displayIcon_1cgjt","displayBadge":"select__displayBadge_1cgjt"};
15
15
  require('./index.css')
16
16
 
17
17
  var Checkmark = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: 1ursp */
1
+ /* hash: p1x6z */
2
2
  :root {
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -25,7 +25,7 @@
25
25
  --select-mobile-checkmark-display-badge: none;
26
26
 
27
27
  /* optgroup */
28
- } .select__checkmark_z5bor {
28
+ } .select__checkmark_1cgjt {
29
29
  flex-shrink: 0;
30
30
  display: flex;
31
31
  align-items: center;
@@ -33,12 +33,12 @@
33
33
  width: 24px;
34
34
  height: 24px;
35
35
  opacity: 0
36
- } .select__checkmark_z5bor:first-child {
36
+ } .select__checkmark_1cgjt:first-child {
37
37
  display: none;
38
- } .select__checkmark_z5bor.select__selected_z5bor {
38
+ } .select__checkmark_1cgjt.select__selected_1cgjt {
39
39
  opacity: 1;
40
- } .select__displayIcon_z5bor {
40
+ } .select__displayIcon_1cgjt {
41
41
  display: var(--select-mobile-checkmark-display-icon);
42
- } .select__displayBadge_z5bor {
42
+ } .select__displayBadge_1cgjt {
43
43
  display: var(--select-mobile-checkmark-display-badge);
44
44
  }
@@ -13,7 +13,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
13
13
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
14
14
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
15
15
 
16
- var styles = {"component":"select__component_1crmu","field":"select__field_1crmu","disabled":"select__disabled_1crmu","arrow":"select__arrow_1crmu","placeholder":"select__placeholder_1crmu","show-placeholder":"select__show-placeholder_1crmu","focused":"select__focused_1crmu","contentWrapper":"select__contentWrapper_1crmu","value":"select__value_1crmu","focusVisible":"select__focusVisible_1crmu"};
16
+ var styles = {"component":"select__component_vwfv9","field":"select__field_vwfv9","disabled":"select__disabled_vwfv9","arrow":"select__arrow_vwfv9","placeholder":"select__placeholder_vwfv9","show-placeholder":"select__show-placeholder_vwfv9","focused":"select__focused_vwfv9","contentWrapper":"select__contentWrapper_vwfv9","value":"select__value_vwfv9","focusVisible":"select__focusVisible_vwfv9"};
17
17
  require('./index.css')
18
18
 
19
19
  var Field = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: 1uo2p */
1
+ /* hash: 8sex5 */
2
2
  :root {
3
3
  } /* deprecated */ :root {
4
4
  --color-light-border-link: #0072ef;
@@ -44,22 +44,22 @@
44
44
  /* checkmark */
45
45
 
46
46
  /* optgroup */
47
- } .select__component_1crmu {
47
+ } .select__component_vwfv9 {
48
48
  width: 100%;
49
49
  outline: none;
50
- } .select__field_1crmu:not(.select__disabled_1crmu) {
50
+ } .select__field_vwfv9:not(.select__disabled_vwfv9) {
51
51
  cursor: pointer
52
- } .select__field_1crmu:not(.select__disabled_1crmu):hover .select__arrow_1crmu {
52
+ } .select__field_vwfv9:not(.select__disabled_vwfv9):hover .select__arrow_vwfv9 {
53
53
  opacity: var(--select-arrow-hover-opacity);
54
- } .select__disabled_1crmu {
54
+ } .select__disabled_vwfv9 {
55
55
  cursor: var(--disabled-cursor);
56
- } .select__placeholder_1crmu {
56
+ } .select__placeholder_vwfv9 {
57
57
  color: var(--input-placeholder-color);
58
58
  transition: color 0.2s ease;
59
- animation: select__show-placeholder_1crmu 0.2s ease
60
- } .select__placeholder_1crmu.select__focused_1crmu {
59
+ animation: select__show-placeholder_vwfv9 0.2s ease
60
+ } .select__placeholder_vwfv9.select__focused_vwfv9 {
61
61
  color: var(--input-focus-placeholder-color);
62
- } .select__contentWrapper_1crmu {
62
+ } .select__contentWrapper_vwfv9 {
63
63
  font-size: 16px;
64
64
  line-height: 20px;
65
65
  font-weight: 400;
@@ -68,14 +68,14 @@
68
68
  text-overflow: ellipsis;
69
69
  overflow: hidden;
70
70
  width: 100%;
71
- } .select__value_1crmu {
71
+ } .select__value_vwfv9 {
72
72
  overflow: hidden;
73
73
  text-overflow: ellipsis;
74
74
  text-align: left;
75
- } .select__focusVisible_1crmu {
75
+ } .select__focusVisible_vwfv9 {
76
76
  outline: 2px solid var(--focus-color);
77
77
  outline-offset: 2px;
78
- } @keyframes select__show-placeholder_1crmu {
78
+ } @keyframes select__show-placeholder_vwfv9 {
79
79
  from {
80
80
  opacity: 0;
81
81
  }
@@ -6,3 +6,4 @@ export * from "./option/index";
6
6
  export * from "./options-list/index";
7
7
  export * from "./virtual-options-list/index";
8
8
  export * from "./base-option/index";
9
+ export * from "./search/index";
@@ -10,6 +10,7 @@ var components_option_Component = require('./option/Component.js');
10
10
  var components_optionsList_Component = require('./options-list/Component.js');
11
11
  var components_virtualOptionsList_Component = require('./virtual-options-list/Component.js');
12
12
  var components_baseOption_Component = require('./base-option/Component.js');
13
+ var components_search_Component = require('./search/Component.js');
13
14
  require('react');
14
15
  require('classnames');
15
16
  require('@alfalab/icons-glyph/ChevronDownMIcon');
@@ -32,6 +33,8 @@ require('@alfalab/core-components-scrollbar');
32
33
  require('../consts.js');
33
34
  require('react-virtual');
34
35
  require('./base-checkmark/Component.js');
36
+ require('@alfalab/core-components-input');
37
+ require('@alfalab/icons-glyph/MagnifierMIcon');
35
38
 
36
39
 
37
40
 
@@ -43,3 +46,4 @@ exports.Option = components_option_Component.Option;
43
46
  exports.OptionsList = components_optionsList_Component.OptionsList;
44
47
  exports.VirtualOptionsList = components_virtualOptionsList_Component.VirtualOptionsList;
45
48
  exports.BaseOption = components_baseOption_Component.BaseOption;
49
+ exports.Search = components_search_Component.Search;
@@ -10,7 +10,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
10
10
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
11
11
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
12
12
 
13
- var styles = {"optgroup":"select__optgroup_198dp","label":"select__label_198dp","l":"select__l_198dp","xl":"select__xl_198dp"};
13
+ var styles = {"optgroup":"select__optgroup_gsi2i","label":"select__label_gsi2i","l":"select__l_gsi2i","xl":"select__xl_gsi2i"};
14
14
  require('./index.css')
15
15
 
16
16
  var Optgroup = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: 1b4np */
1
+ /* hash: xyg20 */
2
2
  :root {
3
3
  } /* deprecated */ :root {
4
4
  --color-light-bg-primary: #fff;
@@ -35,7 +35,7 @@
35
35
  --select-optgroup-right-padding: var(--gap-s);
36
36
  --select-optgroup-l-left-padding: var(--gap-m);
37
37
  --select-optgroup-l-right-padding: var(--gap-m);
38
- } .select__optgroup_198dp {
38
+ } .select__optgroup_gsi2i {
39
39
  position: relative;
40
40
  display: flex;
41
41
  align-items: center;
@@ -44,9 +44,9 @@
44
44
  box-sizing: border-box;
45
45
  background: var(--select-optgroup-background);
46
46
  min-height: 40px
47
- } .select__optgroup_198dp + *[role='option']:before {
47
+ } .select__optgroup_gsi2i + *[role='option']:before {
48
48
  display: none;
49
- } .select__label_198dp {
49
+ } .select__label_gsi2i {
50
50
  font-size: 12px;
51
51
  line-height: 16px;
52
52
  font-weight: 500;
@@ -55,8 +55,8 @@
55
55
 
56
56
  display: block;
57
57
  color: var(--select-optgroup-color);
58
- } .select__l_198dp,
59
- .select__xl_198dp {
58
+ } .select__l_gsi2i,
59
+ .select__xl_gsi2i {
60
60
  padding-left: var(--select-optgroup-l-left-padding);
61
61
  padding-right: var(--select-optgroup-l-right-padding);
62
62
  }
@@ -17,7 +17,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
17
17
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
18
18
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
19
19
 
20
- var styles = {"option":"select__option_1yh0k","disabled":"select__disabled_1yh0k","s":"select__s_1yh0k","m":"select__m_1yh0k","l":"select__l_1yh0k","xl":"select__xl_1yh0k","selected":"select__selected_1yh0k","highlighted":"select__highlighted_1yh0k","content":"select__content_1yh0k","textContent":"select__textContent_1yh0k"};
20
+ var styles = {"option":"select__option_1d11v","disabled":"select__disabled_1d11v","s":"select__s_1d11v","m":"select__m_1d11v","l":"select__l_1d11v","xl":"select__xl_1d11v","selected":"select__selected_1d11v","highlighted":"select__highlighted_1d11v","content":"select__content_1d11v","textContent":"select__textContent_1d11v"};
21
21
  require('./index.css')
22
22
 
23
23
  var Option = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: 1wmjj */
1
+ /* hash: 15poe */
2
2
  :root {
3
3
  } /* deprecated */ :root {
4
4
  --color-light-bg-primary: #fff;
@@ -53,7 +53,7 @@
53
53
  /* checkmark */
54
54
 
55
55
  /* optgroup */
56
- } .select__option_1yh0k {
56
+ } .select__option_1d11v {
57
57
  font-size: 16px;
58
58
  line-height: 20px;
59
59
  font-weight: 400;
@@ -68,10 +68,10 @@
68
68
  box-sizing: border-box;
69
69
  position: relative;
70
70
  cursor: pointer
71
- } .select__option_1yh0k:not(.select__disabled_1yh0k):active {
71
+ } .select__option_1d11v:not(.select__disabled_1d11v):active {
72
72
  background: var(--select-option-active-background);
73
73
  color: var(--select-option-active-color);
74
- } .select__option_1yh0k:before {
74
+ } .select__option_1d11v:before {
75
75
  content: '';
76
76
  position: absolute;
77
77
  left: var(--select-option-left-padding);
@@ -81,46 +81,46 @@
81
81
  background: var(--select-option-divider-background);
82
82
  display: var(--select-option-divider-display);
83
83
  transition: opacity 0.2s ease;
84
- } .select__option_1yh0k:first-child:before {
84
+ } .select__option_1d11v:first-child:before {
85
85
  display: none;
86
- } .select__s_1yh0k {
86
+ } .select__s_1d11v {
87
87
  min-height: var(--size-s-height);
88
- } .select__m_1yh0k {
88
+ } .select__m_1d11v {
89
89
  min-height: var(--size-m-height);
90
- } .select__l_1yh0k {
90
+ } .select__l_1d11v {
91
91
  min-height: var(--size-l-height);
92
- } .select__xl_1yh0k {
92
+ } .select__xl_1d11v {
93
93
  min-height: var(--size-xl-height);
94
- } .select__l_1yh0k,
95
- .select__xl_1yh0k {
94
+ } .select__l_1d11v,
95
+ .select__xl_1d11v {
96
96
  padding-left: var(--select-option-l-left-padding);
97
97
  padding-right: var(--select-option-l-right-padding)
98
- } .select__l_1yh0k:before, .select__xl_1yh0k:before {
98
+ } .select__l_1d11v:before, .select__xl_1d11v:before {
99
99
  left: var(--select-option-l-left-padding);
100
100
  right: var(--select-option-l-right-padding);
101
- } .select__selected_1yh0k {
101
+ } .select__selected_1d11v {
102
102
  background: var(--select-option-selected-background);
103
103
  color: var(--select-option-selected-color);
104
104
  cursor: default;
105
- } .select__highlighted_1yh0k {
105
+ } .select__highlighted_1d11v {
106
106
  background: var(--select-option-hover-background);
107
107
  color: var(--select-option-hover-color)
108
- } .select__highlighted_1yh0k:before,
109
- .select__highlighted_1yh0k + .select__option_1yh0k:before {
108
+ } .select__highlighted_1d11v:before,
109
+ .select__highlighted_1d11v + .select__option_1d11v:before {
110
110
  opacity: 0;
111
- } .select__disabled_1yh0k {
111
+ } .select__disabled_1d11v {
112
112
  cursor: var(--disabled-cursor);
113
113
  background: var(--select-option-disabled-background);
114
114
  color: var(--select-option-disabled-color);
115
- } .select__content_1yh0k {
115
+ } .select__content_1d11v {
116
116
  overflow: hidden;
117
117
  flex: 1;
118
118
  text-overflow: ellipsis;
119
- } .select__textContent_1yh0k {
119
+ } .select__textContent_1d11v {
120
120
  padding-top: var(--gap-s);
121
121
  padding-bottom: var(--gap-s);
122
122
  } /* IE min-height fix */ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
123
- .select__option_1yh0k:after {
123
+ .select__option_1d11v:after {
124
124
  min-height: inherit;
125
125
  font-size: 0;
126
126
  content: '';