@alfalab/core-components-select 10.6.3 → 10.6.6

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 (242) hide show
  1. package/CHANGELOG.md +137 -129
  2. package/dist/Component-ed0d36ed.d.ts +33 -0
  3. package/dist/Component-ed0d36ed.js +359 -0
  4. package/dist/Component-f9672486.d.ts +5 -0
  5. package/dist/Component-f9672486.js +247 -0
  6. package/dist/Component.d.ts +1 -1
  7. package/dist/Component.js +2 -2
  8. package/dist/components/arrow/Component.js +1 -1
  9. package/dist/components/arrow/index.css +3 -3
  10. package/dist/components/base-select/Component.d.ts +0 -5
  11. package/dist/components/base-select/Component.js +11 -241
  12. package/dist/components/base-select/index.css +7 -7
  13. package/dist/components/base-select/index.d.ts +1 -1
  14. package/dist/components/base-select/index.js +2 -2
  15. package/dist/components/checkmark/Component.js +1 -1
  16. package/dist/components/checkmark/index.css +7 -7
  17. package/dist/components/field/Component.js +2 -2
  18. package/dist/components/field/index.css +9 -9
  19. package/dist/components/field/index.js +1 -1
  20. package/dist/components/index.d.ts +1 -0
  21. package/dist/components/index.js +12 -2
  22. package/dist/components/native-select/Component.js +1 -1
  23. package/dist/components/native-select/index.js +1 -1
  24. package/dist/components/optgroup/Component.d.ts +1 -1
  25. package/dist/components/optgroup/Component.js +3 -3
  26. package/dist/components/optgroup/index.css +6 -6
  27. package/dist/components/option/Component.js +2 -2
  28. package/dist/components/option/index.css +20 -20
  29. package/dist/components/option/index.js +1 -1
  30. package/dist/components/options-list/Component.js +4 -4
  31. package/dist/components/options-list/index.css +6 -6
  32. package/dist/components/options-list/index.js +1 -1
  33. package/dist/components/select-mobile/Component.d.ts +0 -0
  34. package/dist/components/select-mobile/Component.js +38 -0
  35. package/dist/components/select-mobile/checkmark/Component.d.ts +4 -0
  36. package/dist/components/select-mobile/checkmark/Component.js +24 -0
  37. package/dist/components/select-mobile/checkmark/index.css +37 -0
  38. package/dist/components/select-mobile/checkmark/index.d.ts +1 -0
  39. package/dist/components/select-mobile/checkmark/index.js +11 -0
  40. package/dist/components/select-mobile/index.css +68 -0
  41. package/dist/components/select-mobile/index.d.ts +1 -0
  42. package/dist/components/select-mobile/index.js +38 -0
  43. package/dist/components/select-mobile/options-list/Component.d.ts +4 -0
  44. package/dist/components/select-mobile/options-list/Component.js +51 -0
  45. package/dist/components/select-mobile/options-list/index.css +65 -0
  46. package/dist/components/select-mobile/options-list/index.d.ts +1 -0
  47. package/dist/components/select-mobile/options-list/index.js +16 -0
  48. package/dist/components/virtual-options-list/Component.js +2 -2
  49. package/dist/components/virtual-options-list/index.css +12 -12
  50. package/dist/components/virtual-options-list/index.js +1 -1
  51. package/dist/cssm/Component-9bc41b6c.d.ts +5 -0
  52. package/dist/cssm/Component-9bc41b6c.js +246 -0
  53. package/dist/cssm/Component-d45c0e41.d.ts +33 -0
  54. package/dist/cssm/Component-d45c0e41.js +365 -0
  55. package/dist/cssm/Component.d.ts +1 -1
  56. package/dist/cssm/Component.js +1 -1
  57. package/dist/cssm/components/base-select/Component.d.ts +0 -5
  58. package/dist/cssm/components/base-select/Component.js +12 -240
  59. package/dist/cssm/components/base-select/index.d.ts +1 -1
  60. package/dist/cssm/components/base-select/index.js +1 -1
  61. package/dist/cssm/components/index.d.ts +1 -0
  62. package/dist/cssm/components/index.js +17 -1
  63. package/dist/cssm/components/optgroup/Component.d.ts +1 -1
  64. package/dist/cssm/components/optgroup/Component.js +2 -2
  65. package/dist/cssm/components/options-list/Component.js +2 -2
  66. package/dist/cssm/components/select-mobile/Component.d.ts +0 -0
  67. package/dist/cssm/components/select-mobile/Component.js +52 -0
  68. package/dist/cssm/components/select-mobile/checkmark/Component.d.ts +4 -0
  69. package/dist/cssm/components/select-mobile/checkmark/Component.js +23 -0
  70. package/dist/cssm/components/select-mobile/checkmark/index.d.ts +1 -0
  71. package/dist/cssm/components/select-mobile/checkmark/index.js +12 -0
  72. package/dist/cssm/components/select-mobile/checkmark/index.module.css +36 -0
  73. package/dist/cssm/components/select-mobile/index.d.ts +1 -0
  74. package/dist/cssm/components/select-mobile/index.js +52 -0
  75. package/dist/cssm/components/select-mobile/index.module.css +67 -0
  76. package/dist/cssm/components/select-mobile/options-list/Component.d.ts +4 -0
  77. package/dist/cssm/components/select-mobile/options-list/Component.js +51 -0
  78. package/dist/cssm/components/select-mobile/options-list/index.d.ts +1 -0
  79. package/dist/cssm/components/select-mobile/options-list/index.js +18 -0
  80. package/dist/cssm/components/select-mobile/options-list/index.module.css +64 -0
  81. package/dist/cssm/getDataTestId-3fe0d3e6.d.ts +2 -0
  82. package/dist/cssm/hook-f5b8fe4f.d.ts +3 -3
  83. package/dist/cssm/index.js +14 -6
  84. package/dist/cssm/presets/index.js +13 -6
  85. package/dist/cssm/presets/useSelectWithApply/hook.js +13 -6
  86. package/dist/cssm/presets/useSelectWithApply/options-list-with-apply/Component.js +12 -5
  87. package/dist/cssm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  88. package/dist/cssm/presets/useSelectWithApply/options-list-with-apply/index.js +12 -5
  89. package/dist/cssm/typings.d.ts +29 -0
  90. package/dist/esm/Component-9afbfef2.d.ts +5 -0
  91. package/dist/esm/Component-9afbfef2.js +238 -0
  92. package/dist/esm/Component-e16d77bb.d.ts +33 -0
  93. package/dist/esm/Component-e16d77bb.js +348 -0
  94. package/dist/esm/Component.d.ts +1 -1
  95. package/dist/esm/Component.js +2 -2
  96. package/dist/esm/components/arrow/Component.js +1 -1
  97. package/dist/esm/components/arrow/index.css +3 -3
  98. package/dist/esm/components/base-select/Component.d.ts +0 -5
  99. package/dist/esm/components/base-select/Component.js +10 -238
  100. package/dist/esm/components/base-select/index.css +7 -7
  101. package/dist/esm/components/base-select/index.d.ts +1 -1
  102. package/dist/esm/components/base-select/index.js +2 -2
  103. package/dist/esm/components/checkmark/Component.js +1 -1
  104. package/dist/esm/components/checkmark/index.css +7 -7
  105. package/dist/esm/components/field/Component.js +2 -2
  106. package/dist/esm/components/field/index.css +9 -9
  107. package/dist/esm/components/field/index.js +1 -1
  108. package/dist/esm/components/index.d.ts +1 -0
  109. package/dist/esm/components/index.js +11 -2
  110. package/dist/esm/components/native-select/Component.js +1 -1
  111. package/dist/esm/components/native-select/index.js +1 -1
  112. package/dist/esm/components/optgroup/Component.d.ts +1 -1
  113. package/dist/esm/components/optgroup/Component.js +3 -3
  114. package/dist/esm/components/optgroup/index.css +6 -6
  115. package/dist/esm/components/option/Component.js +2 -2
  116. package/dist/esm/components/option/index.css +20 -20
  117. package/dist/esm/components/option/index.js +1 -1
  118. package/dist/esm/components/options-list/Component.js +4 -4
  119. package/dist/esm/components/options-list/index.css +6 -6
  120. package/dist/esm/components/options-list/index.js +1 -1
  121. package/dist/esm/components/select-mobile/Component.d.ts +0 -0
  122. package/dist/esm/components/select-mobile/Component.js +30 -0
  123. package/dist/esm/components/select-mobile/checkmark/Component.d.ts +4 -0
  124. package/dist/esm/components/select-mobile/checkmark/Component.js +15 -0
  125. package/dist/esm/components/select-mobile/checkmark/index.css +37 -0
  126. package/dist/esm/components/select-mobile/checkmark/index.d.ts +1 -0
  127. package/dist/esm/components/select-mobile/checkmark/index.js +3 -0
  128. package/dist/esm/components/select-mobile/index.css +68 -0
  129. package/dist/esm/components/select-mobile/index.d.ts +1 -0
  130. package/dist/esm/components/select-mobile/index.js +30 -0
  131. package/dist/esm/components/select-mobile/options-list/Component.d.ts +4 -0
  132. package/dist/esm/components/select-mobile/options-list/Component.js +42 -0
  133. package/dist/esm/components/select-mobile/options-list/index.css +65 -0
  134. package/dist/esm/components/select-mobile/options-list/index.d.ts +1 -0
  135. package/dist/esm/components/select-mobile/options-list/index.js +8 -0
  136. package/dist/esm/components/virtual-options-list/Component.js +2 -2
  137. package/dist/esm/components/virtual-options-list/index.css +12 -12
  138. package/dist/esm/components/virtual-options-list/index.js +1 -1
  139. package/dist/esm/getDataTestId-3fe0d3e6.d.ts +2 -0
  140. package/dist/esm/hook-f5b8fe4f.d.ts +3 -3
  141. package/dist/esm/index.js +9 -5
  142. package/dist/esm/{intersection-observer-d3bb47ca.d.ts → intersection-observer-004c512b.d.ts} +0 -0
  143. package/dist/esm/{intersection-observer-d3bb47ca.js → intersection-observer-004c512b.js} +0 -0
  144. package/dist/esm/presets/index.js +9 -5
  145. package/dist/esm/presets/useLazyLoading/hook.js +3 -3
  146. package/dist/esm/presets/useLazyLoading/index.css +2 -2
  147. package/dist/esm/presets/useSelectWithApply/hook.js +9 -5
  148. package/dist/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +9 -5
  149. package/dist/esm/presets/useSelectWithApply/options-list-with-apply/index.css +4 -4
  150. package/dist/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  151. package/dist/esm/presets/useSelectWithApply/options-list-with-apply/index.js +9 -5
  152. package/dist/esm/presets/useSelectWithLoading/hook.js +2 -2
  153. package/dist/esm/presets/useSelectWithLoading/index.css +2 -2
  154. package/dist/esm/{tslib.es6-16f12dd5.d.ts → tslib.es6-1fd989ad.d.ts} +0 -0
  155. package/dist/esm/{tslib.es6-16f12dd5.js → tslib.es6-1fd989ad.js} +0 -0
  156. package/dist/esm/typings.d.ts +29 -0
  157. package/dist/getDataTestId-3fe0d3e6.d.ts +2 -0
  158. package/dist/hook-f5b8fe4f.d.ts +3 -3
  159. package/dist/index.js +12 -7
  160. package/dist/{intersection-observer-a7fa2c77.d.ts → intersection-observer-e6739adc.d.ts} +0 -0
  161. package/dist/{intersection-observer-a7fa2c77.js → intersection-observer-e6739adc.js} +0 -0
  162. package/dist/modern/Component-25d26613.d.ts +5 -0
  163. package/dist/modern/Component-25d26613.js +247 -0
  164. package/dist/modern/Component-54c400c0.d.ts +33 -0
  165. package/dist/modern/Component-54c400c0.js +363 -0
  166. package/dist/modern/Component.d.ts +1 -1
  167. package/dist/modern/Component.js +1 -1
  168. package/dist/modern/components/arrow/Component.js +1 -1
  169. package/dist/modern/components/arrow/index.css +3 -3
  170. package/dist/modern/components/base-select/Component.d.ts +0 -5
  171. package/dist/modern/components/base-select/Component.js +9 -247
  172. package/dist/modern/components/base-select/index.css +7 -7
  173. package/dist/modern/components/base-select/index.d.ts +1 -1
  174. package/dist/modern/components/base-select/index.js +1 -1
  175. package/dist/modern/components/checkmark/Component.js +1 -1
  176. package/dist/modern/components/checkmark/index.css +7 -7
  177. package/dist/modern/components/field/Component.js +1 -1
  178. package/dist/modern/components/field/index.css +9 -9
  179. package/dist/modern/components/index.d.ts +1 -0
  180. package/dist/modern/components/index.js +10 -1
  181. package/dist/modern/components/optgroup/Component.d.ts +1 -1
  182. package/dist/modern/components/optgroup/Component.js +3 -3
  183. package/dist/modern/components/optgroup/index.css +6 -6
  184. package/dist/modern/components/option/Component.js +1 -1
  185. package/dist/modern/components/option/index.css +20 -20
  186. package/dist/modern/components/options-list/Component.js +3 -3
  187. package/dist/modern/components/options-list/index.css +6 -6
  188. package/dist/modern/components/select-mobile/Component.d.ts +0 -0
  189. package/dist/modern/components/select-mobile/Component.js +29 -0
  190. package/dist/modern/components/select-mobile/checkmark/Component.d.ts +4 -0
  191. package/dist/modern/components/select-mobile/checkmark/Component.js +11 -0
  192. package/dist/modern/components/select-mobile/checkmark/index.css +37 -0
  193. package/dist/modern/components/select-mobile/checkmark/index.d.ts +1 -0
  194. package/dist/modern/components/select-mobile/checkmark/index.js +3 -0
  195. package/dist/modern/components/select-mobile/index.css +68 -0
  196. package/dist/modern/components/select-mobile/index.d.ts +1 -0
  197. package/dist/modern/components/select-mobile/index.js +29 -0
  198. package/dist/modern/components/select-mobile/options-list/Component.d.ts +4 -0
  199. package/dist/modern/components/select-mobile/options-list/Component.js +37 -0
  200. package/dist/modern/components/select-mobile/options-list/index.css +65 -0
  201. package/dist/modern/components/select-mobile/options-list/index.d.ts +1 -0
  202. package/dist/modern/components/select-mobile/options-list/index.js +7 -0
  203. package/dist/modern/components/virtual-options-list/Component.js +1 -1
  204. package/dist/modern/components/virtual-options-list/index.css +12 -12
  205. package/dist/modern/getDataTestId-3fe0d3e6.d.ts +2 -0
  206. package/dist/modern/hook-f5b8fe4f.d.ts +3 -3
  207. package/dist/modern/index.js +8 -4
  208. package/dist/modern/{intersection-observer-d3bb47ca.d.ts → intersection-observer-004c512b.d.ts} +0 -0
  209. package/dist/modern/{intersection-observer-d3bb47ca.js → intersection-observer-004c512b.js} +0 -0
  210. package/dist/modern/presets/index.js +8 -4
  211. package/dist/modern/presets/useLazyLoading/hook.js +2 -2
  212. package/dist/modern/presets/useLazyLoading/index.css +2 -2
  213. package/dist/modern/presets/useSelectWithApply/hook.js +8 -4
  214. package/dist/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +8 -4
  215. package/dist/modern/presets/useSelectWithApply/options-list-with-apply/index.css +4 -4
  216. package/dist/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  217. package/dist/modern/presets/useSelectWithApply/options-list-with-apply/index.js +8 -4
  218. package/dist/modern/presets/useSelectWithLoading/hook.js +1 -1
  219. package/dist/modern/presets/useSelectWithLoading/index.css +2 -2
  220. package/dist/modern/typings.d.ts +29 -0
  221. package/dist/presets/index.js +11 -7
  222. package/dist/presets/useLazyLoading/hook.js +3 -3
  223. package/dist/presets/useLazyLoading/index.css +2 -2
  224. package/dist/presets/useSelectWithApply/hook.js +11 -7
  225. package/dist/presets/useSelectWithApply/options-list-with-apply/Component.js +10 -6
  226. package/dist/presets/useSelectWithApply/options-list-with-apply/index.css +4 -4
  227. package/dist/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  228. package/dist/presets/useSelectWithApply/options-list-with-apply/index.js +10 -6
  229. package/dist/presets/useSelectWithLoading/hook.js +2 -2
  230. package/dist/presets/useSelectWithLoading/index.css +2 -2
  231. package/dist/{tslib.es6-e3c7094c.d.ts → tslib.es6-efd670d0.d.ts} +0 -0
  232. package/dist/{tslib.es6-e3c7094c.js → tslib.es6-efd670d0.js} +0 -0
  233. package/dist/typings.d.ts +29 -0
  234. package/package.json +14 -12
  235. package/dist/cssm/hook-3b9bd559.d.ts +0 -12
  236. package/dist/cssm/hook-3b9bd559.js +0 -147
  237. package/dist/esm/hook-25ca47e0.d.ts +0 -12
  238. package/dist/esm/hook-25ca47e0.js +0 -131
  239. package/dist/hook-86df020f.d.ts +0 -12
  240. package/dist/hook-86df020f.js +0 -140
  241. package/dist/modern/hook-722e061a.d.ts +0 -12
  242. package/dist/modern/hook-722e061a.js +0 -132
@@ -5,7 +5,7 @@ import '../../components/checkmark/Component.js';
5
5
  import { Option } from '../../components/option/Component.js';
6
6
  import { Skeleton } from '@alfalab/core-components-skeleton/dist/modern';
7
7
 
8
- var styles = {"skeleton":"select__skeleton_1q63n"};
8
+ var styles = {"skeleton":"select__skeleton_q1jeb"};
9
9
  require('./index.css')
10
10
 
11
11
  function useSelectWithLoading({ loading = false, visibleOptions = 6, }) {
@@ -1,5 +1,5 @@
1
- /* hash: e1bep */
2
- .select__skeleton_1q63n {
1
+ /* hash: 13saw */
2
+ .select__skeleton_q1jeb {
3
3
  position: absolute;
4
4
  top: 50%;
5
5
  transform: translateY(-50%);
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ReactNode, FC, RefAttributes, AriaAttributes, FocusEvent, MouseEvent, ReactElement } from 'react';
2
3
  import { PopoverProps } from "@alfalab/core-components-popover";
3
4
  import { InputProps } from "@alfalab/core-components-input";
@@ -50,6 +51,10 @@ type BaseSelectProps = {
50
51
  * Дополнительный класс для пункта меню
51
52
  */
52
53
  optionClassName?: string;
54
+ /**
55
+ * Дополнительный класс для компонента группы пунктов
56
+ */
57
+ optionGroupClassName?: string;
53
58
  /**
54
59
  * Дополнительный класс для поповера
55
60
  */
@@ -327,6 +332,10 @@ type OptionsListProps = {
327
332
  * Дополнительный класс
328
333
  */
329
334
  className?: string;
335
+ /**
336
+ * Дополнительный класс для компонента группы пунктов
337
+ */
338
+ optionGroupClassName?: string;
330
339
  /**
331
340
  * Размер компонента
332
341
  */
@@ -399,8 +408,24 @@ type OptionsListProps = {
399
408
  * Дополнительные пропсы для Input'a, находящегося внутри кастомного OptionsList
400
409
  */
401
410
  inputProps?: InputProps;
411
+ /**
412
+ * Нужно ли показывать футер
413
+ */
414
+ showFooter?: boolean;
415
+ /**
416
+ * Обработчик подтверждения изменений
417
+ */
418
+ onApply?: () => void;
419
+ /**
420
+ * Обработчик отмены изменений
421
+ */
422
+ onClear?: () => void;
402
423
  };
403
424
  type OptgroupProps = {
425
+ /**
426
+ * Дополнительный класс для компонента группы пунктов
427
+ */
428
+ className?: string;
404
429
  /**
405
430
  * Размер компонента
406
431
  */
@@ -487,5 +512,9 @@ type CheckmarkProps = {
487
512
  * Расположение отметки
488
513
  */
489
514
  position?: 'before' | 'after';
515
+ /**
516
+ * Иконка выбранного пункта
517
+ */
518
+ icon?: React.FC<React.SVGProps<SVGSVGElement>>;
490
519
  };
491
520
  export { OptionShape, GroupShape, BaseSelectProps, FieldProps, ArrowProps, OptionsListProps, OptgroupProps, OptionProps, CheckmarkProps };
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../tslib.es6-e3c7094c.js');
5
+ require('../tslib.es6-efd670d0.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/hooks');
@@ -21,19 +21,23 @@ require('resize-observer');
21
21
  require('@alfalab/core-components-popover');
22
22
  require('downshift');
23
23
  require('../components/native-select/Component.js');
24
- require('../components/base-select/Component.js');
24
+ require('../Component-f9672486.js');
25
25
  require('../Component.js');
26
+ require('@alfalab/core-components-bottom-sheet');
27
+ require('@alfalab/core-components-button');
28
+ require('@alfalab/core-components-base-modal');
29
+ require('../components/select-mobile/options-list/Component.js');
30
+ require('../components/select-mobile/checkmark/Component.js');
31
+ var presets_useSelectWithApply_hook = require('../Component-ed0d36ed.js');
26
32
  require('react-virtual');
27
33
  require('@alfalab/core-components-skeleton');
28
34
  var presets_useSelectWithLoading_hook = require('./useSelectWithLoading/hook.js');
29
- require('../intersection-observer-a7fa2c77.js');
35
+ require('../intersection-observer-e6739adc.js');
30
36
  var presets_useLazyLoading_hook = require('./useLazyLoading/hook.js');
31
- require('@alfalab/core-components-button');
32
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-86df020f.js');
33
37
 
34
38
 
35
39
 
40
+ exports.SELECT_ALL_KEY = presets_useSelectWithApply_hook.SELECT_ALL_KEY;
41
+ exports.useSelectWithApply = presets_useSelectWithApply_hook.useSelectWithApply;
36
42
  exports.useSelectWithLoading = presets_useSelectWithLoading_hook.useSelectWithLoading;
37
43
  exports.useLazyLoading = presets_useLazyLoading_hook.useLazyLoading;
38
- exports.SELECT_ALL_KEY = presets_useSelectWithApply_optionsListWithApply_Component.SELECT_ALL_KEY;
39
- exports.useSelectWithApply = presets_useSelectWithApply_optionsListWithApply_Component.useSelectWithApply;
@@ -2,20 +2,20 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('../../tslib.es6-e3c7094c.js');
5
+ var tslib_es6 = require('../../tslib.es6-efd670d0.js');
6
6
  var React = require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/core-components-checkbox');
9
9
  require('../../components/checkmark/Component.js');
10
10
  var components_option_Component = require('../../components/option/Component.js');
11
11
  var coreComponentsSkeleton = require('@alfalab/core-components-skeleton');
12
- require('../../intersection-observer-a7fa2c77.js');
12
+ require('../../intersection-observer-e6739adc.js');
13
13
 
14
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
15
 
16
16
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
17
 
18
- var styles = {"skeleton":"select__skeleton_osqox"};
18
+ var styles = {"skeleton":"select__skeleton_ydsmy"};
19
19
  require('./index.css')
20
20
 
21
21
  var DEBOUNCE_TIMEOUT = 300;
@@ -1,5 +1,5 @@
1
- /* hash: f959m */
2
- .select__skeleton_osqox {
1
+ /* hash: 1oj9u */
2
+ .select__skeleton_ydsmy {
3
3
  position: absolute;
4
4
  top: 50%;
5
5
  transform: translateY(-50%);
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../tslib.es6-e3c7094c.js');
5
+ require('../../tslib.es6-efd670d0.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/hooks');
@@ -21,15 +21,19 @@ require('resize-observer');
21
21
  require('@alfalab/core-components-popover');
22
22
  require('downshift');
23
23
  require('../../components/native-select/Component.js');
24
- require('../../components/base-select/Component.js');
24
+ require('../../Component-f9672486.js');
25
25
  require('../../Component.js');
26
+ require('@alfalab/core-components-bottom-sheet');
27
+ require('@alfalab/core-components-button');
28
+ require('@alfalab/core-components-base-modal');
29
+ require('../../components/select-mobile/options-list/Component.js');
30
+ require('../../components/select-mobile/checkmark/Component.js');
31
+ var presets_useSelectWithApply_hook = require('../../Component-ed0d36ed.js');
26
32
  require('react-virtual');
27
33
  require('@alfalab/core-components-skeleton');
28
- require('../../intersection-observer-a7fa2c77.js');
29
- require('@alfalab/core-components-button');
30
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../../hook-86df020f.js');
34
+ require('../../intersection-observer-e6739adc.js');
31
35
 
32
36
 
33
37
 
34
- exports.SELECT_ALL_KEY = presets_useSelectWithApply_optionsListWithApply_Component.SELECT_ALL_KEY;
35
- exports.useSelectWithApply = presets_useSelectWithApply_optionsListWithApply_Component.useSelectWithApply;
38
+ exports.SELECT_ALL_KEY = presets_useSelectWithApply_hook.SELECT_ALL_KEY;
39
+ exports.useSelectWithApply = presets_useSelectWithApply_hook.useSelectWithApply;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../../tslib.es6-e3c7094c.js');
5
+ require('../../../tslib.es6-efd670d0.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/hooks');
@@ -21,14 +21,18 @@ require('resize-observer');
21
21
  require('@alfalab/core-components-popover');
22
22
  require('downshift');
23
23
  require('../../../components/native-select/Component.js');
24
- require('../../../components/base-select/Component.js');
24
+ require('../../../Component-f9672486.js');
25
25
  require('../../../Component.js');
26
+ require('@alfalab/core-components-bottom-sheet');
27
+ require('@alfalab/core-components-button');
28
+ require('@alfalab/core-components-base-modal');
29
+ require('../../../components/select-mobile/options-list/Component.js');
30
+ require('../../../components/select-mobile/checkmark/Component.js');
31
+ var presets_useSelectWithApply_hook = require('../../../Component-ed0d36ed.js');
26
32
  require('react-virtual');
27
33
  require('@alfalab/core-components-skeleton');
28
- require('../../../intersection-observer-a7fa2c77.js');
29
- require('@alfalab/core-components-button');
30
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-86df020f.js');
34
+ require('../../../intersection-observer-e6739adc.js');
31
35
 
32
36
 
33
37
 
34
- exports.OptionsListWithApply = presets_useSelectWithApply_optionsListWithApply_Component.OptionsListWithApply;
38
+ exports.OptionsListWithApply = presets_useSelectWithApply_hook.OptionsListWithApply;
@@ -1,4 +1,4 @@
1
- /* hash: 111o7 */
1
+ /* hash: baopl */
2
2
  :root {
3
3
  --color-light-bg-primary: #fff;
4
4
  --color-light-border-secondary: #e7e9eb;
@@ -26,14 +26,14 @@
26
26
 
27
27
  /* optgroup */
28
28
  }
29
- .select__footer_1l8wa {
29
+ .select__footer_3ofg3 {
30
30
  background: var(--color-light-bg-primary);
31
31
  padding: var(--gap-s) var(--gap-s) var(--gap-m);
32
32
  outline: none
33
33
  }
34
- .select__footer_1l8wa > * + * {
34
+ .select__footer_3ofg3 > * + * {
35
35
  margin-left: var(--gap-xs);
36
36
  }
37
- .select__withBorder_1l8wa {
37
+ .select__withBorder_3ofg3 {
38
38
  box-shadow: inset 0 1px 0 var(--color-light-border-secondary);
39
39
  }
@@ -1 +1 @@
1
- export * from "../../../hook-86df020f";
1
+ export * from "../../../Component-ed0d36ed";
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../../tslib.es6-e3c7094c.js');
5
+ require('../../../tslib.es6-efd670d0.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/hooks');
@@ -21,14 +21,18 @@ require('resize-observer');
21
21
  require('@alfalab/core-components-popover');
22
22
  require('downshift');
23
23
  require('../../../components/native-select/Component.js');
24
- require('../../../components/base-select/Component.js');
24
+ require('../../../Component-f9672486.js');
25
25
  require('../../../Component.js');
26
+ require('@alfalab/core-components-bottom-sheet');
27
+ require('@alfalab/core-components-button');
28
+ require('@alfalab/core-components-base-modal');
29
+ require('../../../components/select-mobile/options-list/Component.js');
30
+ require('../../../components/select-mobile/checkmark/Component.js');
31
+ var presets_useSelectWithApply_hook = require('../../../Component-ed0d36ed.js');
26
32
  require('react-virtual');
27
33
  require('@alfalab/core-components-skeleton');
28
- require('../../../intersection-observer-a7fa2c77.js');
29
- require('@alfalab/core-components-button');
30
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-86df020f.js');
34
+ require('../../../intersection-observer-e6739adc.js');
31
35
 
32
36
 
33
37
 
34
- exports.OptionsListWithApply = presets_useSelectWithApply_optionsListWithApply_Component.OptionsListWithApply;
38
+ exports.OptionsListWithApply = presets_useSelectWithApply_hook.OptionsListWithApply;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('../../tslib.es6-e3c7094c.js');
5
+ var tslib_es6 = require('../../tslib.es6-efd670d0.js');
6
6
  var React = require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/core-components-checkbox');
@@ -14,7 +14,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
14
14
 
15
15
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
16
 
17
- var styles = {"skeleton":"select__skeleton_1q63n"};
17
+ var styles = {"skeleton":"select__skeleton_q1jeb"};
18
18
  require('./index.css')
19
19
 
20
20
  function useSelectWithLoading(_a) {
@@ -1,5 +1,5 @@
1
- /* hash: e1bep */
2
- .select__skeleton_1q63n {
1
+ /* hash: 13saw */
2
+ .select__skeleton_q1jeb {
3
3
  position: absolute;
4
4
  top: 50%;
5
5
  transform: translateY(-50%);
package/dist/typings.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ReactNode, FC, RefAttributes, AriaAttributes, FocusEvent, MouseEvent, ReactElement } from 'react';
2
3
  import { PopoverProps } from "@alfalab/core-components-popover";
3
4
  import { InputProps } from "@alfalab/core-components-input";
@@ -50,6 +51,10 @@ type BaseSelectProps = {
50
51
  * Дополнительный класс для пункта меню
51
52
  */
52
53
  optionClassName?: string;
54
+ /**
55
+ * Дополнительный класс для компонента группы пунктов
56
+ */
57
+ optionGroupClassName?: string;
53
58
  /**
54
59
  * Дополнительный класс для поповера
55
60
  */
@@ -327,6 +332,10 @@ type OptionsListProps = {
327
332
  * Дополнительный класс
328
333
  */
329
334
  className?: string;
335
+ /**
336
+ * Дополнительный класс для компонента группы пунктов
337
+ */
338
+ optionGroupClassName?: string;
330
339
  /**
331
340
  * Размер компонента
332
341
  */
@@ -399,8 +408,24 @@ type OptionsListProps = {
399
408
  * Дополнительные пропсы для Input'a, находящегося внутри кастомного OptionsList
400
409
  */
401
410
  inputProps?: InputProps;
411
+ /**
412
+ * Нужно ли показывать футер
413
+ */
414
+ showFooter?: boolean;
415
+ /**
416
+ * Обработчик подтверждения изменений
417
+ */
418
+ onApply?: () => void;
419
+ /**
420
+ * Обработчик отмены изменений
421
+ */
422
+ onClear?: () => void;
402
423
  };
403
424
  type OptgroupProps = {
425
+ /**
426
+ * Дополнительный класс для компонента группы пунктов
427
+ */
428
+ className?: string;
404
429
  /**
405
430
  * Размер компонента
406
431
  */
@@ -487,5 +512,9 @@ type CheckmarkProps = {
487
512
  * Расположение отметки
488
513
  */
489
514
  position?: 'before' | 'after';
515
+ /**
516
+ * Иконка выбранного пункта
517
+ */
518
+ icon?: React.FC<React.SVGProps<SVGSVGElement>>;
490
519
  };
491
520
  export { OptionShape, GroupShape, BaseSelectProps, FieldProps, ArrowProps, OptionsListProps, OptgroupProps, OptionProps, CheckmarkProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-select",
3
- "version": "10.6.3",
3
+ "version": "10.6.6",
4
4
  "description": "Select component",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -20,18 +20,20 @@
20
20
  "react-dom": "^16.9.0 || ^17.0.1"
21
21
  },
22
22
  "dependencies": {
23
- "@alfalab/core-components-button": "^5.1.1",
24
- "@alfalab/core-components-checkbox": "^2.6.0",
25
- "@alfalab/core-components-form-control": "^7.4.0",
26
- "@alfalab/core-components-input": "^8.1.0",
27
- "@alfalab/core-components-popover": "^5.6.1",
28
- "@alfalab/core-components-skeleton": "^3.1.0",
23
+ "@alfalab/core-components-base-modal": "^4.0.2",
24
+ "@alfalab/core-components-bottom-sheet": "^4.1.1",
25
+ "@alfalab/core-components-button": "^5.1.3",
26
+ "@alfalab/core-components-checkbox": "^2.7.2",
27
+ "@alfalab/core-components-form-control": "^7.4.2",
28
+ "@alfalab/core-components-input": "^8.1.2",
29
+ "@alfalab/core-components-popover": "^5.6.3",
30
+ "@alfalab/core-components-skeleton": "^3.1.2",
29
31
  "@alfalab/hooks": "^1.4.1",
30
- "classnames": "^2.2.6",
32
+ "classnames": "2.2.6",
31
33
  "downshift": "5.4.7",
32
- "react-merge-refs": "^1.1.0",
33
- "react-virtual": "^2.2.0",
34
- "resize-observer": "^1.0.0"
34
+ "react-merge-refs": "1.1.0",
35
+ "react-virtual": "2.3.2",
36
+ "resize-observer": "1.0.0"
35
37
  },
36
- "gitHead": "72b4794c38921aa1b04e2fae5f2c178095621968"
38
+ "gitHead": "8d998af881e79e8b524179aa50cdb117c1380c74"
37
39
  }
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import React from 'react';
3
- import { OptionShape, OptionsListProps } from "./typings";
4
- declare const OptionsListWithApply: React.ForwardRefExoticComponent<OptionsListProps & {
5
- showClear?: boolean | undefined;
6
- onApply?: (() => void) | undefined;
7
- onClear?: (() => void) | undefined;
8
- onClose?: (() => void) | undefined;
9
- selectedDraft?: OptionShape[] | undefined;
10
- OptionsList?: React.FC<OptionsListProps & React.RefAttributes<unknown>> | undefined;
11
- } & React.RefAttributes<unknown>>;
12
- export { OptionsListWithApply };
@@ -1,147 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib_es6 = require('./tslib.es6-f8106a15.js');
4
- var React = require('react');
5
- var cn = require('classnames');
6
- require('@alfalab/hooks');
7
- require('@alfalab/core-components-form-control/dist/cssm');
8
- var utils = require('./utils.js');
9
- require('./components/field/index.module.css');
10
- require('@alfalab/icons-glyph/ChevronDownMIcon');
11
- require('./components/arrow/index.module.css');
12
- require('./components/optgroup/index.module.css');
13
- var components_optionsList_Component = require('./components/options-list/Component.js');
14
- require('@alfalab/core-components-checkbox/dist/cssm');
15
- require('./components/checkmark/index.module.css');
16
- require('./components/option/index.module.css');
17
- require('./components/base-select/Component.js');
18
- require('./Component.js');
19
- require('react-virtual');
20
- require('./components/virtual-options-list/index.module.css');
21
- require('@alfalab/core-components-skeleton/dist/cssm');
22
- require('./presets/useSelectWithLoading/index.module.css');
23
- require('./intersection-observer-8c55e13a.js');
24
- require('./presets/useLazyLoading/index.module.css');
25
- var coreComponentsButton = require('@alfalab/core-components-button/dist/cssm');
26
- var styles = require('./presets/useSelectWithApply/options-list-with-apply/index.module.css');
27
-
28
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
29
-
30
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
- var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
32
- var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
33
-
34
- var OptionsListWithApply = React.forwardRef(function (_a, ref) {
35
- var _b;
36
- var toggleMenu = _a.toggleMenu, _c = _a.OptionsList, OptionsList = _c === void 0 ? components_optionsList_Component.OptionsList : _c, defaultGetOptionProps = _a.getOptionProps, _d = _a.showClear, showClear = _d === void 0 ? true : _d, _e = _a.selectedDraft, selectedDraft = _e === void 0 ? [] : _e, _f = _a.flatOptions, flatOptions = _f === void 0 ? [] : _f, _g = _a.onApply, onApply = _g === void 0 ? function () { return null; } : _g, _h = _a.onClear, onClear = _h === void 0 ? function () { return null; } : _h, _j = _a.onClose, onClose = _j === void 0 ? function () { return null; } : _j, _k = _a.visibleOptions, visibleOptions = _k === void 0 ? 5 : _k, restProps = tslib_es6.__rest(_a, ["toggleMenu", "OptionsList", "getOptionProps", "showClear", "selectedDraft", "flatOptions", "onApply", "onClear", "onClose", "visibleOptions"]);
37
- var footerRef = React.useRef(null);
38
- var getOptionProps = React.useCallback(function (option, index) {
39
- var optionProps = defaultGetOptionProps(option, index);
40
- var selected = option.key === SELECT_ALL_KEY
41
- ? selectedDraft.length === flatOptions.length - 1
42
- : selectedDraft.includes(option);
43
- return tslib_es6.__assign(tslib_es6.__assign({}, optionProps), { selected: selected });
44
- }, [defaultGetOptionProps, flatOptions.length, selectedDraft]);
45
- var handleApply = React.useCallback(function () {
46
- onApply();
47
- toggleMenu();
48
- }, [onApply, toggleMenu]);
49
- var handleClear = React.useCallback(function () {
50
- onClear();
51
- toggleMenu();
52
- }, [onClear, toggleMenu]);
53
- React.useEffect(function () {
54
- var activeElement = document.activeElement;
55
- setTimeout(function () {
56
- if (footerRef.current) {
57
- footerRef.current.focus();
58
- }
59
- }, 0);
60
- return function () {
61
- onClose();
62
- if (activeElement) {
63
- activeElement.focus();
64
- }
65
- };
66
- // eslint-disable-next-line react-hooks/exhaustive-deps
67
- }, []);
68
- return (React__default['default'].createElement(OptionsList, tslib_es6.__assign({}, restProps, { ref: ref, visibleOptions: visibleOptions, toggleMenu: toggleMenu, flatOptions: flatOptions, getOptionProps: getOptionProps, footer: React__default['default'].createElement("div", {
69
- // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
70
- tabIndex: 0, className: cn__default['default'](styles__default['default'].footer, (_b = {},
71
- _b[styles__default['default'].withBorder] = visibleOptions && flatOptions.length > visibleOptions,
72
- _b)), ref: footerRef },
73
- React__default['default'].createElement(coreComponentsButton.Button, { size: 'xxs', view: 'primary', onClick: handleApply }, "\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C"),
74
- showClear && (React__default['default'].createElement(coreComponentsButton.Button, { size: 'xxs', view: 'secondary', onClick: handleClear }, "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C"))) })));
75
- });
76
-
77
- var SELECT_ALL_KEY = 'select_all';
78
- var selectAllOption = { key: SELECT_ALL_KEY, content: 'Выбрать все' };
79
- function useSelectWithApply(_a) {
80
- var options = _a.options, selected = _a.selected, _b = _a.onChange, onChange = _b === void 0 ? function () { return null; } : _b, OptionsList = _a.OptionsList, _c = _a.showClear, showClear = _c === void 0 ? true : _c, _d = _a.showSelectAll, showSelectAll = _d === void 0 ? false : _d;
81
- var _e = React.useMemo(function () { return utils.processOptions(options, selected); }, [
82
- options,
83
- selected,
84
- ]), flatOptions = _e.flatOptions, selectedOptions = _e.selectedOptions;
85
- var _f = React.useState(selectedOptions), selectedDraft = _f[0], setSelectedDraft = _f[1];
86
- var selectedOptionsRef = React.useRef(selectedOptions);
87
- var handleApply = React.useCallback(function () {
88
- onChange({
89
- selected: selectedDraft[0],
90
- selectedMultiple: selectedDraft,
91
- initiator: null,
92
- });
93
- }, [onChange, selectedDraft]);
94
- var handleClear = React.useCallback(function () {
95
- setSelectedDraft([]);
96
- onChange({
97
- selected: null,
98
- selectedMultiple: [],
99
- initiator: null,
100
- });
101
- }, [onChange]);
102
- var handleChange = React.useCallback(function (_a) {
103
- var initiator = _a.initiator, restArgs = tslib_es6.__rest(_a, ["initiator"]);
104
- if (!initiator) {
105
- onChange(tslib_es6.__assign({ initiator: null }, restArgs));
106
- return;
107
- }
108
- var initiatorSelected = selectedDraft.includes(initiator) ||
109
- (initiator.key === SELECT_ALL_KEY && selectedDraft.length === flatOptions.length);
110
- if (initiator.key === SELECT_ALL_KEY) {
111
- setSelectedDraft(initiatorSelected ? [] : flatOptions);
112
- }
113
- else {
114
- setSelectedDraft(initiatorSelected
115
- ? selectedDraft.filter(function (o) { return o !== initiator; })
116
- : selectedDraft.concat(initiator));
117
- }
118
- }, [flatOptions, onChange, selectedDraft]);
119
- var handleClose = React.useCallback(function () {
120
- setSelectedDraft(selectedOptionsRef.current);
121
- }, []);
122
- React.useEffect(function () {
123
- setSelectedDraft(selectedOptions);
124
- selectedOptionsRef.current = selectedOptions;
125
- }, [selectedOptions]);
126
- var memoizedOptions = React.useMemo(function () { return (showSelectAll ? tslib_es6.__spreadArrays([selectAllOption], options) : options); }, [options, showSelectAll]);
127
- return {
128
- OptionsList: OptionsListWithApply,
129
- optionsListProps: {
130
- OptionsList: OptionsList,
131
- showClear: showClear && (selectedDraft.length > 0 || selectedOptions.length > 0),
132
- onClear: handleClear,
133
- onApply: handleApply,
134
- onClose: handleClose,
135
- selectedDraft: selectedDraft,
136
- },
137
- allowUnselect: true,
138
- multiple: true,
139
- options: memoizedOptions,
140
- onChange: handleChange,
141
- selected: selected,
142
- };
143
- }
144
-
145
- exports.OptionsListWithApply = OptionsListWithApply;
146
- exports.SELECT_ALL_KEY = SELECT_ALL_KEY;
147
- exports.useSelectWithApply = useSelectWithApply;
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import React from 'react';
3
- import { OptionShape, OptionsListProps } from "./typings";
4
- declare const OptionsListWithApply: React.ForwardRefExoticComponent<OptionsListProps & {
5
- showClear?: boolean | undefined;
6
- onApply?: (() => void) | undefined;
7
- onClear?: (() => void) | undefined;
8
- onClose?: (() => void) | undefined;
9
- selectedDraft?: OptionShape[] | undefined;
10
- OptionsList?: React.FC<OptionsListProps & React.RefAttributes<unknown>> | undefined;
11
- } & React.RefAttributes<unknown>>;
12
- export { OptionsListWithApply };