@alfalab/core-components-select 15.3.0 → 16.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/Component.desktop.d.ts +3 -15
  2. package/Component.desktop.js +4 -2
  3. package/Component.mobile.d.ts +3 -39
  4. package/Component.mobile.js +23 -10
  5. package/Component.modal.mobile.d.ts +2 -256
  6. package/Component.modal.mobile.js +23 -35
  7. package/Component.responsive.d.ts +3 -17
  8. package/Component.responsive.js +11 -13
  9. package/components/arrow/Component.js +1 -1
  10. package/components/arrow/index.css +5 -5
  11. package/components/base-checkmark/Component.js +1 -1
  12. package/components/base-checkmark/index.css +4 -4
  13. package/components/base-option/Component.js +1 -1
  14. package/components/base-option/index.css +16 -16
  15. package/components/base-select/Component.d.ts +17 -2
  16. package/components/base-select/Component.js +188 -81
  17. package/components/base-select/index.css +12 -12
  18. package/components/base-select/index.js +1 -1
  19. package/{esm/components/base-select-mobile/index.css → components/base-select/mobile.css} +13 -22
  20. package/components/checkmark/Component.js +1 -1
  21. package/components/checkmark/index.css +11 -11
  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 +15 -17
  26. package/components/footer/Component.d.ts +12 -0
  27. package/components/{base-select-mobile/footer → footer}/Component.js +6 -5
  28. package/components/{base-select-mobile/footer → footer}/index.css +6 -6
  29. package/components/footer/index.d.ts +1 -0
  30. package/components/{base-select-mobile/footer → footer}/index.js +3 -2
  31. package/components/index.js +2 -1
  32. package/components/optgroup/Component.js +1 -1
  33. package/components/optgroup/index.css +7 -7
  34. package/components/option/Component.js +1 -1
  35. package/components/option/index.css +24 -24
  36. package/components/options-list/Component.js +7 -3
  37. package/components/options-list/index.css +11 -11
  38. package/components/options-list/index.js +2 -1
  39. package/components/search/Component.d.ts +2 -4
  40. package/components/search/Component.js +1 -1
  41. package/components/search/index.css +2 -2
  42. package/components/virtual-options-list/Component.js +7 -3
  43. package/components/virtual-options-list/index.css +18 -18
  44. package/components/virtual-options-list/index.js +2 -1
  45. package/cssm/Component.desktop.d.ts +3 -15
  46. package/cssm/Component.desktop.js +5 -2
  47. package/cssm/Component.mobile.d.ts +3 -39
  48. package/cssm/Component.mobile.js +27 -13
  49. package/cssm/Component.modal.mobile.d.ts +2 -256
  50. package/cssm/Component.modal.mobile.js +28 -39
  51. package/cssm/Component.responsive.d.ts +3 -17
  52. package/cssm/Component.responsive.js +13 -15
  53. package/cssm/components/arrow/index.module.css +2 -2
  54. package/cssm/components/base-option/index.module.css +3 -3
  55. package/cssm/components/base-select/Component.d.ts +17 -2
  56. package/cssm/components/base-select/Component.js +186 -80
  57. package/cssm/components/base-select/index.js +2 -1
  58. package/cssm/components/base-select/index.module.css +2 -2
  59. package/cssm/components/{base-select-mobile/index.module.css → base-select/mobile.module.css} +0 -9
  60. package/cssm/components/checkmark/index.module.css +1 -1
  61. package/cssm/components/field/index.module.css +3 -5
  62. package/cssm/components/footer/Component.d.ts +12 -0
  63. package/cssm/components/{base-select-mobile/footer → footer}/Component.js +5 -4
  64. package/cssm/components/footer/index.d.ts +1 -0
  65. package/cssm/components/{base-select-mobile/footer → footer}/index.js +3 -2
  66. package/cssm/components/{base-select-mobile/footer → footer}/index.module.css +1 -1
  67. package/cssm/components/index.js +3 -1
  68. package/cssm/components/optgroup/index.module.css +1 -1
  69. package/cssm/components/option/index.module.css +4 -4
  70. package/cssm/components/options-list/Component.js +6 -2
  71. package/cssm/components/options-list/index.js +2 -1
  72. package/cssm/components/options-list/index.module.css +2 -2
  73. package/cssm/components/search/Component.d.ts +2 -4
  74. package/cssm/components/virtual-options-list/Component.js +6 -2
  75. package/cssm/components/virtual-options-list/index.js +2 -1
  76. package/cssm/components/virtual-options-list/index.module.css +3 -3
  77. package/cssm/desktop/index.d.ts +2 -2
  78. package/cssm/desktop/index.js +4 -1
  79. package/cssm/{hook-244c8d6e.js → hook-2f9ec939.js} +9 -5
  80. package/{esm/hook-8abfea97.d.ts → cssm/hook-ad89c253.d.ts} +3 -2
  81. package/cssm/index.d.ts +2 -2
  82. package/cssm/index.js +10 -9
  83. package/cssm/mobile/index.d.ts +1 -3
  84. package/cssm/mobile/index.js +15 -10
  85. package/cssm/presets/index.d.ts +1 -1
  86. package/cssm/presets/index.js +3 -2
  87. package/cssm/presets/useSelectWithApply/hook.js +3 -2
  88. package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
  89. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  90. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
  91. package/cssm/shared/index.d.ts +9 -2
  92. package/cssm/shared/index.js +50 -48
  93. package/cssm/typings.d.ts +86 -7
  94. package/desktop/index.d.ts +2 -2
  95. package/desktop/index.js +3 -1
  96. package/esm/Component.desktop.d.ts +3 -15
  97. package/esm/Component.desktop.js +4 -2
  98. package/esm/Component.mobile.d.ts +3 -39
  99. package/esm/Component.mobile.js +22 -9
  100. package/esm/Component.modal.mobile.d.ts +2 -256
  101. package/esm/Component.modal.mobile.js +24 -36
  102. package/esm/Component.responsive.d.ts +3 -17
  103. package/esm/Component.responsive.js +11 -13
  104. package/esm/components/arrow/Component.js +1 -1
  105. package/esm/components/arrow/index.css +5 -5
  106. package/esm/components/base-checkmark/Component.js +1 -1
  107. package/esm/components/base-checkmark/index.css +4 -4
  108. package/esm/components/base-option/Component.js +1 -1
  109. package/esm/components/base-option/index.css +16 -16
  110. package/esm/components/base-select/Component.d.ts +17 -2
  111. package/esm/components/base-select/Component.js +190 -83
  112. package/esm/components/base-select/index.css +12 -12
  113. package/esm/components/base-select/index.js +1 -1
  114. package/{modern/components/base-select-mobile/index.css → esm/components/base-select/mobile.css} +13 -22
  115. package/esm/components/checkmark/Component.js +1 -1
  116. package/esm/components/checkmark/index.css +11 -11
  117. package/esm/components/checkmark-mobile/Component.js +1 -1
  118. package/esm/components/checkmark-mobile/index.css +6 -6
  119. package/esm/components/field/Component.js +1 -1
  120. package/esm/components/field/index.css +15 -17
  121. package/esm/components/footer/Component.d.ts +12 -0
  122. package/esm/components/{base-select-mobile/footer → footer}/Component.js +6 -5
  123. package/esm/components/{base-select-mobile/footer → footer}/index.css +6 -6
  124. package/esm/components/footer/index.d.ts +1 -0
  125. package/esm/components/{base-select-mobile/footer → footer}/index.js +1 -0
  126. package/esm/components/index.js +2 -1
  127. package/esm/components/optgroup/Component.js +1 -1
  128. package/esm/components/optgroup/index.css +7 -7
  129. package/esm/components/option/Component.js +1 -1
  130. package/esm/components/option/index.css +24 -24
  131. package/esm/components/options-list/Component.js +7 -3
  132. package/esm/components/options-list/index.css +11 -11
  133. package/esm/components/options-list/index.js +2 -1
  134. package/esm/components/search/Component.d.ts +2 -4
  135. package/esm/components/search/Component.js +1 -1
  136. package/esm/components/search/index.css +2 -2
  137. package/esm/components/virtual-options-list/Component.js +7 -3
  138. package/esm/components/virtual-options-list/index.css +18 -18
  139. package/esm/components/virtual-options-list/index.js +2 -1
  140. package/esm/desktop/index.d.ts +2 -2
  141. package/esm/desktop/index.js +3 -1
  142. package/{hook-8abfea97.d.ts → esm/hook-ad89c253.d.ts} +3 -2
  143. package/esm/{hook-70d58270.js → hook-d82699d1.js} +10 -6
  144. package/esm/index.d.ts +2 -2
  145. package/esm/index.js +8 -7
  146. package/esm/mobile/index.d.ts +1 -3
  147. package/esm/mobile/index.js +12 -8
  148. package/esm/presets/index.d.ts +1 -1
  149. package/esm/presets/index.js +3 -2
  150. package/esm/presets/useSelectWithApply/hook.js +3 -2
  151. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
  152. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  153. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  154. package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  155. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  156. package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  157. package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
  158. package/esm/presets/useSelectWithLoading/hook.js +1 -1
  159. package/esm/presets/useSelectWithLoading/index.css +2 -2
  160. package/esm/shared/index.d.ts +9 -2
  161. package/esm/shared/index.js +30 -29
  162. package/esm/typings.d.ts +86 -7
  163. package/{cssm/hook-8abfea97.d.ts → hook-ad89c253.d.ts} +3 -2
  164. package/{hook-0a5c9f56.js → hook-df30325f.js} +9 -5
  165. package/index.d.ts +2 -2
  166. package/index.js +8 -7
  167. package/mobile/index.d.ts +1 -3
  168. package/mobile/index.js +12 -8
  169. package/modern/Component.desktop.d.ts +3 -15
  170. package/modern/Component.desktop.js +5 -3
  171. package/modern/Component.mobile.d.ts +3 -39
  172. package/modern/Component.mobile.js +29 -13
  173. package/modern/Component.modal.mobile.d.ts +2 -256
  174. package/modern/Component.modal.mobile.js +23 -43
  175. package/modern/Component.responsive.d.ts +3 -17
  176. package/modern/Component.responsive.js +11 -13
  177. package/modern/components/arrow/Component.js +1 -1
  178. package/modern/components/arrow/index.css +5 -5
  179. package/modern/components/base-checkmark/Component.js +1 -1
  180. package/modern/components/base-checkmark/index.css +4 -4
  181. package/modern/components/base-option/Component.js +1 -1
  182. package/modern/components/base-option/index.css +16 -16
  183. package/modern/components/base-select/Component.d.ts +17 -2
  184. package/modern/components/base-select/Component.js +179 -72
  185. package/modern/components/base-select/index.css +12 -12
  186. package/modern/components/base-select/index.js +1 -1
  187. package/{components/base-select-mobile/index.css → modern/components/base-select/mobile.css} +13 -22
  188. package/modern/components/checkmark/Component.js +1 -1
  189. package/modern/components/checkmark/index.css +11 -11
  190. package/modern/components/checkmark-mobile/Component.js +1 -1
  191. package/modern/components/checkmark-mobile/index.css +6 -6
  192. package/modern/components/field/Component.js +1 -1
  193. package/modern/components/field/index.css +15 -17
  194. package/modern/components/footer/Component.d.ts +12 -0
  195. package/modern/components/{base-select-mobile/footer → footer}/Component.js +5 -4
  196. package/modern/components/{base-select-mobile/footer → footer}/index.css +6 -6
  197. package/modern/components/footer/index.d.ts +1 -0
  198. package/modern/components/{base-select-mobile/footer → footer}/index.js +1 -0
  199. package/modern/components/index.js +2 -1
  200. package/modern/components/optgroup/Component.js +1 -1
  201. package/modern/components/optgroup/index.css +7 -7
  202. package/modern/components/option/Component.js +1 -1
  203. package/modern/components/option/index.css +24 -24
  204. package/modern/components/options-list/Component.js +5 -3
  205. package/modern/components/options-list/index.css +11 -11
  206. package/modern/components/options-list/index.js +2 -1
  207. package/modern/components/search/Component.d.ts +2 -4
  208. package/modern/components/search/Component.js +1 -1
  209. package/modern/components/search/index.css +2 -2
  210. package/modern/components/virtual-options-list/Component.js +5 -3
  211. package/modern/components/virtual-options-list/index.css +18 -18
  212. package/modern/components/virtual-options-list/index.js +2 -1
  213. package/modern/desktop/index.d.ts +2 -2
  214. package/modern/desktop/index.js +3 -1
  215. package/modern/{hook-8abfea97.d.ts → hook-ad89c253.d.ts} +3 -2
  216. package/modern/{hook-4eceefed.js → hook-d879e08e.js} +7 -3
  217. package/modern/index.d.ts +2 -2
  218. package/modern/index.js +8 -7
  219. package/modern/mobile/index.d.ts +1 -3
  220. package/modern/mobile/index.js +12 -8
  221. package/modern/presets/index.d.ts +1 -1
  222. package/modern/presets/index.js +3 -2
  223. package/modern/presets/useSelectWithApply/hook.js +3 -2
  224. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
  225. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  226. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  227. package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  228. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  229. package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  230. package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
  231. package/modern/presets/useSelectWithLoading/hook.js +1 -1
  232. package/modern/presets/useSelectWithLoading/index.css +2 -2
  233. package/modern/shared/index.d.ts +9 -2
  234. package/modern/shared/index.js +29 -28
  235. package/modern/typings.d.ts +86 -7
  236. package/package.json +13 -11
  237. package/presets/index.d.ts +1 -1
  238. package/presets/index.js +3 -2
  239. package/presets/useSelectWithApply/hook.js +3 -2
  240. package/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
  241. package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  242. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  243. package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  244. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  245. package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  246. package/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
  247. package/presets/useSelectWithLoading/hook.js +1 -1
  248. package/presets/useSelectWithLoading/index.css +2 -2
  249. package/shared/index.d.ts +9 -2
  250. package/shared/index.js +39 -38
  251. package/src/Component.desktop.tsx +5 -14
  252. package/src/Component.mobile.tsx +38 -57
  253. package/src/Component.modal.mobile.tsx +5 -147
  254. package/src/Component.responsive.tsx +9 -44
  255. package/src/components/base-select/Component.tsx +380 -156
  256. package/src/components/base-select/index.module.css +1 -1
  257. package/src/components/{base-select-mobile/index.module.css → base-select/mobile.module.css} +0 -15
  258. package/src/components/{base-select-mobile/footer → footer}/Component.tsx +22 -4
  259. package/src/components/{base-select-mobile/footer → footer}/index.module.css +1 -1
  260. package/src/components/footer/index.ts +1 -0
  261. package/src/components/options-list/Component.tsx +6 -2
  262. package/src/components/virtual-options-list/Component.tsx +6 -2
  263. package/src/desktop/index.ts +2 -1
  264. package/src/index.ts +2 -4
  265. package/src/mobile/index.ts +1 -2
  266. package/src/presets/useSelectWithApply/hook.tsx +9 -3
  267. package/src/shared/index.ts +10 -2
  268. package/src/typings.ts +110 -9
  269. package/src/vars.css +1 -1
  270. package/typings.d.ts +86 -7
  271. package/components/base-select-mobile/Component.d.ts +0 -71
  272. package/components/base-select-mobile/Component.js +0 -296
  273. package/components/base-select-mobile/footer/Component.d.ts +0 -9
  274. package/components/base-select-mobile/footer/index.d.ts +0 -1
  275. package/components/base-select-mobile/index.d.ts +0 -1
  276. package/components/base-select-mobile/index.js +0 -36
  277. package/cssm/components/base-select-mobile/Component.d.ts +0 -71
  278. package/cssm/components/base-select-mobile/Component.js +0 -303
  279. package/cssm/components/base-select-mobile/footer/Component.d.ts +0 -9
  280. package/cssm/components/base-select-mobile/footer/index.d.ts +0 -1
  281. package/cssm/components/base-select-mobile/index.d.ts +0 -1
  282. package/cssm/components/base-select-mobile/index.js +0 -45
  283. package/esm/components/base-select-mobile/Component.d.ts +0 -71
  284. package/esm/components/base-select-mobile/Component.js +0 -286
  285. package/esm/components/base-select-mobile/footer/Component.d.ts +0 -9
  286. package/esm/components/base-select-mobile/footer/index.d.ts +0 -1
  287. package/esm/components/base-select-mobile/index.d.ts +0 -1
  288. package/esm/components/base-select-mobile/index.js +0 -28
  289. package/modern/components/base-select-mobile/Component.d.ts +0 -71
  290. package/modern/components/base-select-mobile/Component.js +0 -285
  291. package/modern/components/base-select-mobile/footer/Component.d.ts +0 -9
  292. package/modern/components/base-select-mobile/footer/index.d.ts +0 -1
  293. package/modern/components/base-select-mobile/index.d.ts +0 -1
  294. package/modern/components/base-select-mobile/index.js +0 -27
  295. package/src/components/base-select-mobile/Component.tsx +0 -572
  296. package/src/components/base-select-mobile/footer/index.ts +0 -1
  297. package/src/components/base-select-mobile/index.ts +0 -1
  298. /package/cssm/{hook-244c8d6e.d.ts → hook-2f9ec939.d.ts} +0 -0
  299. /package/esm/{hook-70d58270.d.ts → hook-d82699d1.d.ts} +0 -0
  300. /package/{hook-0a5c9f56.d.ts → hook-df30325f.d.ts} +0 -0
  301. /package/modern/{hook-4eceefed.d.ts → hook-d879e08e.d.ts} +0 -0
@@ -1,303 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var tslib = require('tslib');
6
- var React = require('react');
7
- var mergeRefs = require('react-merge-refs');
8
- var cn = require('classnames');
9
- var downshift = require('downshift');
10
- var coreComponentsBottomSheet = require('@alfalab/core-components-bottom-sheet/cssm');
11
- var mobile = require('@alfalab/core-components-modal/cssm/mobile');
12
- var coreComponentsShared = require('@alfalab/core-components-shared/cssm');
13
- var utils = require('../../utils.js');
14
- var components_arrow_Component = require('../arrow/Component.js');
15
- var components_field_Component = require('../field/Component.js');
16
- var components_optgroup_Component = require('../optgroup/Component.js');
17
- var components_option_Component = require('../option/Component.js');
18
- var components_optionsList_Component = require('../options-list/Component.js');
19
- var components_search_Component = require('../search/Component.js');
20
- var styles = require('./index.module.css');
21
- require('@alfalab/icons-glyph/ChevronDownMIcon');
22
- require('../arrow/index.module.css');
23
- require('@alfalab/hooks');
24
- require('../field/index.module.css');
25
- require('../optgroup/index.module.css');
26
- require('../checkmark/Component.js');
27
- require('@alfalab/core-components-badge/cssm');
28
- require('@alfalab/core-components-checkbox/cssm');
29
- require('@alfalab/icons-glyph/CheckmarkCircleMIcon');
30
- require('@alfalab/icons-glyph/CheckmarkMIcon');
31
- require('../checkmark/index.module.css');
32
- require('../checkmark-mobile/Component.js');
33
- require('../checkmark-mobile/index.module.css');
34
- require('../option/index.module.css');
35
- require('@alfalab/core-components-scrollbar/cssm');
36
- require('../../consts.js');
37
- require('../options-list/index.module.css');
38
- require('@alfalab/core-components-input/cssm');
39
- require('@alfalab/icons-glyph/MagnifierMIcon');
40
- require('../search/index.module.css');
41
-
42
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
43
-
44
- var React__default = /*#__PURE__*/_interopDefaultCompat(React);
45
- var mergeRefs__default = /*#__PURE__*/_interopDefaultCompat(mergeRefs);
46
- var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
47
- var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
48
-
49
- var BaseSelectMobile = React.forwardRef(function (_a, ref) {
50
- var _b;
51
- 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;
52
- var rootRef = React.useRef(null);
53
- var fieldRef = React.useRef(null);
54
- var listRef = React.useRef(null);
55
- var initiatorRef = React.useRef(null);
56
- var alreadyClickedRef = React.useRef(false);
57
- var searchRef = React.useRef(null);
58
- var _1 = React__default.default.useState(''), searchState = _1[0], setSearchState = _1[1];
59
- var _2 = typeof (searchProps === null || searchProps === void 0 ? void 0 : searchProps.value) === 'string'
60
- ? [searchProps.value, searchProps.onChange]
61
- : [searchState, setSearchState], search = _2[0], setSearch = _2[1];
62
- var itemToString = function (option) { return (option ? option.key : ''); };
63
- var accessor = searchProps.accessor || utils.defaultAccessor;
64
- var _3 = React.useMemo(function () {
65
- return utils.processOptions(options, selected, function (option) {
66
- return utils.defaultFilterFn(accessor(option), search);
67
- });
68
- }, [accessor, options, search, selected]), filteredOptions = _3.filteredOptions, flatOptions = _3.flatOptions, selectedOptions = _3.selectedOptions;
69
- var scrollableContainerRef = React.useRef(null);
70
- var useMultipleSelectionProps = {
71
- itemToString: itemToString,
72
- onSelectedItemsChange: function (changes) {
73
- if (onChange) {
74
- var _a = changes.selectedItems, selectedItems_1 = _a === void 0 ? [] : _a;
75
- onChange({
76
- selectedMultiple: selectedItems_1,
77
- selected: selectedItems_1.length ? selectedItems_1[0] : null,
78
- initiator: initiatorRef.current,
79
- name: name,
80
- });
81
- initiatorRef.current = null;
82
- }
83
- },
84
- stateReducer: function (state, actionAndChanges) {
85
- var type = actionAndChanges.type, changes = actionAndChanges.changes;
86
- if (!allowUnselect &&
87
- type === downshift.useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace) {
88
- return state;
89
- }
90
- return changes;
91
- },
92
- };
93
- if (selected !== undefined) {
94
- useMultipleSelectionProps.selectedItems = selectedOptions;
95
- }
96
- var _4 = downshift.useMultipleSelection(useMultipleSelectionProps), selectedItems = _4.selectedItems, addSelectedItem = _4.addSelectedItem, setSelectedItems = _4.setSelectedItems, removeSelectedItem = _4.removeSelectedItem, getDropdownProps = _4.getDropdownProps;
97
- var _5 = downshift.useCombobox({
98
- id: id,
99
- isOpen: openProp,
100
- circularNavigation: circularNavigation,
101
- items: flatOptions,
102
- itemToString: itemToString,
103
- defaultHighlightedIndex: -1,
104
- onIsOpenChange: function (_a) {
105
- var isOpen = _a.isOpen;
106
- if (onOpen) {
107
- /**
108
- * Вызываем обработчик асинхронно.
109
- *
110
- * Иначе при клике вне открытого селекта сначала сработает onOpen, который закроет селект,
111
- * А затем сработает onClick кнопки открытия\закрытия с open=false и в итоге селект откроется снова.
112
- */
113
- setTimeout(function () {
114
- onOpen({
115
- open: isOpen,
116
- name: name,
117
- });
118
- }, 0);
119
- }
120
- if (showSearch) {
121
- if (isOpen) {
122
- setTimeout(function () {
123
- var _a;
124
- (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.focus();
125
- // BottomSheet transition duration
126
- }, 500);
127
- }
128
- else {
129
- setSearch === null || setSearch === void 0 ? void 0 : setSearch('');
130
- }
131
- }
132
- },
133
- stateReducer: function (state, actionAndChanges) {
134
- var type = actionAndChanges.type, changes = actionAndChanges.changes;
135
- var selectedItem = changes.selectedItem;
136
- switch (type) {
137
- case downshift.useCombobox.stateChangeTypes.InputBlur:
138
- return state;
139
- case downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
140
- case downshift.useCombobox.stateChangeTypes.ItemClick:
141
- initiatorRef.current = selectedItem;
142
- if (selectedItem && !selectedItem.disabled && !alreadyClickedRef.current) {
143
- // TODO!!! Проблема downshift + React 18. ItemClick срабатывает дважды. См https://github.com/downshift-js/downshift/issues/1384
144
- if (React__default.default.version.indexOf('18') === 0) {
145
- alreadyClickedRef.current = true;
146
- setTimeout(function () {
147
- alreadyClickedRef.current = false;
148
- });
149
- }
150
- var alreadySelected = selectedItems.includes(selectedItem);
151
- var allowRemove = allowUnselect || (multiple && selectedItems.length > 1);
152
- if (alreadySelected && allowRemove) {
153
- if (multiple) {
154
- removeSelectedItem(selectedItem);
155
- }
156
- else {
157
- setSelectedItems([]);
158
- }
159
- }
160
- if (!alreadySelected) {
161
- if (multiple) {
162
- addSelectedItem(selectedItem);
163
- }
164
- else {
165
- setSelectedItems([selectedItem]);
166
- }
167
- }
168
- }
169
- return tslib.__assign(tslib.__assign({}, changes), { isOpen: !closeOnSelect || multiple,
170
- // при closeOnSelect === false - сохраняем подсвеченный индекс
171
- highlightedIndex: state.isOpen && !closeOnSelect
172
- ? state.highlightedIndex
173
- : changes.highlightedIndex });
174
- default:
175
- return changes;
176
- }
177
- },
178
- }), 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;
179
- var menuProps = getMenuProps({ ref: listRef }, { suppressRefError: true });
180
- var inputProps = getInputProps(getDropdownProps({ ref: mergeRefs__default.default([ref, fieldRef]) }));
181
- var handleFieldFocus = function (event) {
182
- if (onFocus)
183
- onFocus(event);
184
- if (autocomplete && !open) {
185
- openMenu();
186
- }
187
- };
188
- var handleFieldBlur = function (event) {
189
- if (!open && onBlur)
190
- onBlur(event);
191
- };
192
- var handleFieldKeyDown = function (event) {
193
- inputProps.onKeyDown(event);
194
- // https://caniuse.com/?search=KeyboardEvent.key
195
- var isKeyUnsupported = event.key === 'Unidentified';
196
- if (autocomplete &&
197
- !open &&
198
- (isKeyUnsupported || event.key.length === 1 || event.key === 'Backspace')) {
199
- // Для автокомплита - открываем меню при начале ввода
200
- openMenu();
201
- }
202
- if ([' ', 'Enter'].includes(event.key) &&
203
- !autocomplete &&
204
- event.target.tagName !== 'INPUT' &&
205
- event.target.tagName !== 'BUTTON') {
206
- // Открываем\закрываем меню по нажатию enter или пробела
207
- event.preventDefault();
208
- if (!open || highlightedIndex === -1)
209
- toggleMenu();
210
- }
211
- };
212
- var handleFieldClick = function (event) {
213
- if (!autocomplete || event.target.tagName !== 'INPUT') {
214
- toggleMenu();
215
- }
216
- else {
217
- openMenu();
218
- }
219
- };
220
- var getOptionProps = function (option, index) {
221
- var selectedItem = selectedItems.some(function (_a) {
222
- var key = _a.key;
223
- return key === option.key;
224
- });
225
- return tslib.__assign(tslib.__assign({}, optionProps), { mobile: true, className: cn__default.default(styles__default.default.option, optionClassName), innerProps: getItemProps({
226
- index: index,
227
- item: option,
228
- disabled: option.disabled,
229
- onMouseDown: function (event) { return event.preventDefault(); },
230
- }), multiple: multiple, index: index, option: option, size: optionsSize, disabled: option.disabled, highlighted: index === highlightedIndex, selected: selectedItem, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'option') });
231
- };
232
- React.useEffect(function () {
233
- if (defaultOpen)
234
- openMenu();
235
- }, [defaultOpen, openMenu]);
236
- React.useEffect(function () {
237
- if (openProp) {
238
- openMenu();
239
- }
240
- // eslint-disable-next-line react-hooks/exhaustive-deps
241
- }, []);
242
- var handleClose = function () {
243
- toggleMenu();
244
- };
245
- var renderValue = function () {
246
- return selectedItems.map(function (option) { return (React__default.default.createElement("input", { type: 'hidden', name: name, value: option.key, key: option.key })); });
247
- };
248
- var renderSearch = function () {
249
- 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__default.default.search, ref: searchRef })));
250
- };
251
- var emptyPlaceholder = optionsListProps.emptyPlaceholder;
252
- var renderEmptyPlaceholder = function () {
253
- if (emptyPlaceholder) {
254
- return emptyPlaceholder;
255
- }
256
- if (showSearch) {
257
- return React__default.default.createElement("div", { className: styles__default.default.emptySearchPlaceholder }, "\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0448\u043B\u043E\u0441\u044C");
258
- }
259
- return undefined;
260
- };
261
- var renderOptionsList = function () {
262
- if (flatOptions.length === 0 && !showEmptyOptionsList && !showSearch)
263
- return null;
264
- return (React__default.default.createElement("div", tslib.__assign({}, menuProps, { className: cn__default.default(styles__default.default.optionsListWrapper, optionsListClassName) }),
265
- React__default.default.createElement(OptionsList, tslib.__assign({}, optionsListProps, { ref: scrollableContainerRef, className: styles__default.default.optionsList, scrollbarClassName: styles__default.default.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__default.default.optionGroup, optionGroupClassName), emptyPlaceholder: renderEmptyPlaceholder() }))));
266
- };
267
- return (React__default.default.createElement("div", tslib.__assign({}, getComboboxProps(tslib.__assign(tslib.__assign({ ref: rootRef }, (disabled && { 'aria-disabled': true })), { className: cn__default.default(styles__default.default.component, (_b = {}, _b[styles__default.default.block] = block, _b), className) })), { onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": coreComponentsShared.getDataTestId(dataTestId) }),
268
- 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: {
269
- onBlur: handleFieldBlur,
270
- onFocus: disabled ? undefined : handleFieldFocus,
271
- onClick: disabled ? undefined : handleFieldClick,
272
- tabIndex: disabled ? -1 : 0,
273
- ref: mergeRefs__default.default([inputProps.ref]),
274
- id: inputProps.id,
275
- 'aria-labelledby': inputProps['aria-labelledby'],
276
- 'aria-controls': inputProps['aria-controls'],
277
- 'aria-autocomplete': autocomplete
278
- ? inputProps['aria-autocomplete']
279
- : undefined,
280
- }, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'field') }, fieldProps)),
281
- name && renderValue(),
282
- isBottomSheet ? (React__default.default.createElement(coreComponentsBottomSheet.BottomSheet, tslib.__assign({ open: open, onClose: handleClose, className: styles__default.default.sheet, contentClassName: styles__default.default.sheetContent, containerClassName: styles__default.default.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,
283
- renderSearch(), bottomSheetProps === null || bottomSheetProps === void 0 ? void 0 :
284
- bottomSheetProps.bottomAddons) }), renderOptionsList())) : (React__default.default.createElement(mobile.ModalMobile, tslib.__assign({ open: open, hasCloser: true }, modalProps, { onClose: function () {
285
- var _a;
286
- var args = [];
287
- for (var _i = 0; _i < arguments.length; _i++) {
288
- args[_i] = arguments[_i];
289
- }
290
- handleClose();
291
- (_a = modalProps === null || modalProps === void 0 ? void 0 : modalProps.onClose) === null || _a === void 0 ? void 0 : _a.call.apply(_a, tslib.__spreadArray([modalProps], args, false));
292
- }, contentClassName: cn__default.default(styles__default.default.sheetContent, modalProps === null || modalProps === void 0 ? void 0 : modalProps.contentClassName), ref: mergeRefs__default.default([
293
- scrollableContainerRef,
294
- modalProps === null || modalProps === void 0 ? void 0 : modalProps.ref,
295
- ]) }),
296
- React__default.default.createElement(mobile.ModalMobile.Header, tslib.__assign({ hasCloser: true, sticky: true }, modalHeaderProps, { title: undefined, bottomAddons: React__default.default.createElement(React__default.default.Fragment, null,
297
- renderSearch(), modalHeaderProps === null || modalHeaderProps === void 0 ? void 0 :
298
- modalHeaderProps.bottomAddons) }), (modalHeaderProps === null || modalHeaderProps === void 0 ? void 0 : modalHeaderProps.title) || label || placeholder),
299
- React__default.default.createElement(mobile.ModalMobile.Content, { flex: true, className: styles__default.default.modalContent }, renderOptionsList()),
300
- (modalFooterProps === null || modalFooterProps === void 0 ? void 0 : modalFooterProps.children) && React__default.default.createElement(mobile.ModalMobile.Footer, tslib.__assign({}, modalFooterProps))))));
301
- });
302
-
303
- exports.BaseSelectMobile = BaseSelectMobile;
@@ -1,9 +0,0 @@
1
- /// <reference types="react" />
2
- import React from 'react';
3
- type FooterProps = {
4
- handleClear?: () => void;
5
- handleApply?: () => void;
6
- showClear?: boolean;
7
- };
8
- declare const Footer: ({ handleApply, handleClear, showClear }: FooterProps) => React.JSX.Element;
9
- export { FooterProps, Footer };
@@ -1 +0,0 @@
1
- export * from "./Component";
@@ -1 +0,0 @@
1
- export * from "./Component";
@@ -1,45 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var components_baseSelectMobile_Component = require('./Component.js');
6
- require('tslib');
7
- require('react');
8
- require('react-merge-refs');
9
- require('classnames');
10
- require('downshift');
11
- require('@alfalab/core-components-bottom-sheet/cssm');
12
- require('@alfalab/core-components-modal/cssm/mobile');
13
- require('@alfalab/core-components-shared/cssm');
14
- require('../../utils.js');
15
- require('../arrow/Component.js');
16
- require('@alfalab/icons-glyph/ChevronDownMIcon');
17
- require('../arrow/index.module.css');
18
- require('../field/Component.js');
19
- require('@alfalab/hooks');
20
- require('../field/index.module.css');
21
- require('../optgroup/Component.js');
22
- require('../optgroup/index.module.css');
23
- require('../option/Component.js');
24
- require('../checkmark/Component.js');
25
- require('@alfalab/core-components-badge/cssm');
26
- require('@alfalab/core-components-checkbox/cssm');
27
- require('@alfalab/icons-glyph/CheckmarkCircleMIcon');
28
- require('@alfalab/icons-glyph/CheckmarkMIcon');
29
- require('../checkmark/index.module.css');
30
- require('../checkmark-mobile/Component.js');
31
- require('../checkmark-mobile/index.module.css');
32
- require('../option/index.module.css');
33
- require('../options-list/Component.js');
34
- require('@alfalab/core-components-scrollbar/cssm');
35
- require('../../consts.js');
36
- require('../options-list/index.module.css');
37
- require('../search/Component.js');
38
- require('@alfalab/core-components-input/cssm');
39
- require('@alfalab/icons-glyph/MagnifierMIcon');
40
- require('../search/index.module.css');
41
- require('./index.module.css');
42
-
43
-
44
-
45
- exports.BaseSelectMobile = components_baseSelectMobile_Component.BaseSelectMobile;
@@ -1,71 +0,0 @@
1
- /// <reference types="react" />
2
- import React from 'react';
3
- import { ReactNode } from "react";
4
- import { BottomSheetProps } from "@alfalab/core-components-bottom-sheet";
5
- import { ModalMobile } from "@alfalab/core-components-modal/mobile";
6
- import { BaseSelectProps } from "../../typings";
7
- type SelectMobileProps = Omit<BaseSelectProps, 'Checkmark' | 'onScroll'> & {
8
- /**
9
- * Футер
10
- * @deprecated Используйте bottomSheetProps.actionButton
11
- */
12
- footer?: ReactNode;
13
- /**
14
- * Будет ли свайпаться шторка
15
- * @deprecated Используйте bottomSheetProps.swipeable
16
- */
17
- swipeable?: boolean;
18
- /**
19
- * Отображать в BottomSheet
20
- */
21
- isBottomSheet?: boolean;
22
- /**
23
- * Дополнительные пропсы шторки
24
- */
25
- bottomSheetProps?: Partial<BottomSheetProps>;
26
- /**
27
- * Дополнительные пропсы модалки
28
- */
29
- modalProps?: Partial<React.ComponentProps<typeof ModalMobile>>;
30
- /**
31
- * Дополнительные пропсы шапки модалки
32
- */
33
- modalHeaderProps?: Partial<React.ComponentProps<typeof ModalMobile.Header>>;
34
- /**
35
- * Дополнительные пропсы футера модалки
36
- */
37
- modalFooterProps?: Partial<React.ComponentProps<typeof ModalMobile.Footer>>;
38
- };
39
- declare const BaseSelectMobile: React.ForwardRefExoticComponent<Omit<BaseSelectProps, "onScroll" | "Checkmark"> & {
40
- /**
41
- * Футер
42
- * @deprecated Используйте bottomSheetProps.actionButton
43
- */
44
- footer?: ReactNode;
45
- /**
46
- * Будет ли свайпаться шторка
47
- * @deprecated Используйте bottomSheetProps.swipeable
48
- */
49
- swipeable?: boolean | undefined;
50
- /**
51
- * Отображать в BottomSheet
52
- */
53
- isBottomSheet?: boolean | undefined;
54
- /**
55
- * Дополнительные пропсы шторки
56
- */
57
- bottomSheetProps?: Partial<BottomSheetProps> | undefined;
58
- /**
59
- * Дополнительные пропсы модалки
60
- */
61
- modalProps?: Partial<import("@alfalab/core-components-modal/mobile").ModalMobileProps & React.RefAttributes<HTMLDivElement>> | undefined;
62
- /**
63
- * Дополнительные пропсы шапки модалки
64
- */
65
- modalHeaderProps?: Partial<import("../../Component.modal.mobile").HeaderProps> | undefined;
66
- /**
67
- * Дополнительные пропсы футера модалки
68
- */
69
- modalFooterProps?: Partial<import("../../Component.modal.mobile").FooterProps> | undefined;
70
- } & React.RefAttributes<unknown>>;
71
- export { SelectMobileProps, BaseSelectMobile };