@alfalab/core-components-select 15.2.0 → 15.2.2
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.
- package/Component-89f0cb07.d.ts +38 -0
- package/Component.mobile-ebda875c.d.ts +4 -4
- package/Component.mobile-f1f15074.d.ts +1 -1
- package/Component.mobile.js +2 -2
- package/Component.modal.mobile.js +2 -2
- package/Component.responsive.js +1 -1
- package/components/arrow/Component.js +1 -1
- package/components/arrow/index.css +3 -3
- package/components/base-checkmark/Component.js +1 -1
- package/components/base-checkmark/index.css +4 -4
- package/components/base-option/Component.js +1 -1
- package/components/base-option/index.css +13 -13
- package/components/base-select/Component.js +12 -5
- package/components/base-select/index.css +11 -11
- package/components/base-select-mobile/Component.js +13 -4
- package/components/base-select-mobile/footer/Component.js +1 -1
- package/components/base-select-mobile/footer/index.css +5 -5
- package/components/base-select-mobile/index.css +17 -18
- package/components/checkmark/Component.js +1 -1
- package/components/checkmark/index.css +10 -10
- package/components/checkmark-mobile/Component.js +1 -1
- package/components/checkmark-mobile/index.css +6 -6
- package/components/field/Component.js +1 -1
- package/components/field/index.css +12 -12
- package/components/optgroup/Component.js +1 -1
- package/components/optgroup/index.css +6 -6
- package/components/option/Component.js +1 -1
- package/components/option/index.css +20 -20
- package/components/options-list/Component.js +5 -4
- package/components/options-list/index.css +9 -9
- package/components/search/Component.js +1 -1
- package/components/search/index.css +2 -2
- package/components/virtual-options-list/Component.js +5 -4
- package/components/virtual-options-list/index.css +15 -15
- package/cssm/Component-89f0cb07.d.ts +38 -0
- package/cssm/Component.mobile-ebda875c.d.ts +4 -4
- package/cssm/Component.mobile.js +2 -2
- package/cssm/Component.modal.mobile.js +2 -2
- package/cssm/Component.responsive.js +1 -1
- package/cssm/components/base-select/Component.js +11 -4
- package/cssm/components/base-select-mobile/Component.js +12 -3
- package/cssm/components/base-select-mobile/index.module.css +1 -2
- package/cssm/components/options-list/Component.js +4 -3
- package/cssm/components/virtual-options-list/Component.js +4 -3
- package/cssm/desktop-69921c40.d.ts +6 -0
- package/{hook-45ab0a9c.js → cssm/hook-244c8d6e.js} +4 -1
- package/cssm/index-ebda875c.d.ts +1 -37
- package/cssm/index.js +1 -1
- package/cssm/mobile.js +1 -1
- package/cssm/presets/index.js +1 -1
- package/cssm/presets/useSelectWithApply/hook.js +1 -1
- package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
- package/cssm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/cssm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
- package/cssm/shared.js +1 -1
- package/{esm/typings-9211a437.d.ts → cssm/typings-89f0cb07.d.ts} +5 -7
- package/cssm/typings.d.ts +4 -0
- package/desktop-69921c40.d.ts +6 -0
- package/esm/Component-89f0cb07.d.ts +38 -0
- package/esm/Component.mobile-ebda875c.d.ts +4 -4
- package/esm/Component.mobile.js +2 -2
- package/esm/Component.modal.mobile.js +2 -2
- package/esm/Component.responsive.js +1 -1
- package/esm/components/arrow/Component.js +1 -1
- package/esm/components/arrow/index.css +3 -3
- package/esm/components/base-checkmark/Component.js +1 -1
- package/esm/components/base-checkmark/index.css +4 -4
- package/esm/components/base-option/Component.js +1 -1
- package/esm/components/base-option/index.css +13 -13
- package/esm/components/base-select/Component.js +12 -5
- package/esm/components/base-select/index.css +11 -11
- package/esm/components/base-select-mobile/Component.js +13 -4
- package/esm/components/base-select-mobile/footer/Component.js +1 -1
- package/esm/components/base-select-mobile/footer/index.css +5 -5
- package/esm/components/base-select-mobile/index.css +17 -18
- package/esm/components/checkmark/Component.js +1 -1
- package/esm/components/checkmark/index.css +10 -10
- package/esm/components/checkmark-mobile/Component.js +1 -1
- package/esm/components/checkmark-mobile/index.css +6 -6
- package/esm/components/field/Component.js +1 -1
- package/esm/components/field/index.css +12 -12
- package/esm/components/optgroup/Component.js +1 -1
- package/esm/components/optgroup/index.css +6 -6
- package/esm/components/option/Component.js +1 -1
- package/esm/components/option/index.css +20 -20
- package/esm/components/options-list/Component.js +5 -4
- package/esm/components/options-list/index.css +9 -9
- package/esm/components/search/Component.js +1 -1
- package/esm/components/search/index.css +2 -2
- package/esm/components/virtual-options-list/Component.js +5 -4
- package/esm/components/virtual-options-list/index.css +15 -15
- package/esm/desktop-69921c40.d.ts +6 -0
- package/esm/{hook-3fd6d6d4.js → hook-571dca86.js} +4 -1
- package/esm/index-ebda875c.d.ts +1 -37
- package/esm/index.js +1 -1
- package/esm/mobile.js +1 -1
- package/esm/presets/index.js +1 -1
- package/esm/presets/useSelectWithApply/hook.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
- package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
- package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
- package/esm/presets/useSelectWithLoading/hook.js +1 -1
- package/esm/presets/useSelectWithLoading/index.css +2 -2
- package/esm/shared.js +1 -1
- package/{modern/typings-9211a437.d.ts → esm/typings-89f0cb07.d.ts} +5 -7
- package/esm/typings.d.ts +4 -0
- package/{cssm/hook-d1f5dd40.js → hook-a6f060a1.js} +4 -1
- package/index-ebda875c.d.ts +1 -37
- package/index.js +1 -1
- package/mobile.js +1 -1
- package/modern/Component-89f0cb07.d.ts +38 -0
- package/modern/Component.mobile-ebda875c.d.ts +4 -4
- package/modern/Component.mobile.js +2 -2
- package/modern/Component.modal.mobile.js +2 -2
- package/modern/Component.responsive.js +1 -1
- package/modern/components/arrow/Component.js +1 -1
- package/modern/components/arrow/index.css +3 -3
- package/modern/components/base-checkmark/Component.js +1 -1
- package/modern/components/base-checkmark/index.css +4 -4
- package/modern/components/base-option/Component.js +1 -1
- package/modern/components/base-option/index.css +13 -13
- package/modern/components/base-select/Component.js +9 -5
- package/modern/components/base-select/index.css +11 -11
- package/modern/components/base-select-mobile/Component.js +10 -4
- package/modern/components/base-select-mobile/footer/Component.js +1 -1
- package/modern/components/base-select-mobile/footer/index.css +5 -5
- package/modern/components/base-select-mobile/index.css +17 -18
- package/modern/components/checkmark/Component.js +1 -1
- package/modern/components/checkmark/index.css +10 -10
- package/modern/components/checkmark-mobile/Component.js +1 -1
- package/modern/components/checkmark-mobile/index.css +6 -6
- package/modern/components/field/Component.js +1 -1
- package/modern/components/field/index.css +12 -12
- package/modern/components/optgroup/Component.js +1 -1
- package/modern/components/optgroup/index.css +6 -6
- package/modern/components/option/Component.js +1 -1
- package/modern/components/option/index.css +20 -20
- package/modern/components/options-list/Component.js +5 -4
- package/modern/components/options-list/index.css +9 -9
- package/modern/components/search/Component.js +1 -1
- package/modern/components/search/index.css +2 -2
- package/modern/components/virtual-options-list/Component.js +5 -4
- package/modern/components/virtual-options-list/index.css +15 -15
- package/modern/desktop-69921c40.d.ts +6 -0
- package/modern/{hook-5dd83d48.js → hook-7e628eb4.js} +1 -1
- package/modern/index-ebda875c.d.ts +1 -37
- package/modern/index.js +1 -1
- package/modern/mobile.js +1 -1
- package/modern/presets/index.js +1 -1
- package/modern/presets/useSelectWithApply/hook.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
- package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
- package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
- package/modern/presets/useSelectWithLoading/hook.js +1 -1
- package/modern/presets/useSelectWithLoading/index.css +2 -2
- package/modern/shared.js +1 -1
- package/{typings-9211a437.d.ts → modern/typings-89f0cb07.d.ts} +5 -7
- package/modern/typings.d.ts +4 -0
- package/package.json +7 -7
- package/presets/index.js +1 -1
- package/presets/useSelectWithApply/hook.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
- package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
- package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
- package/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
- package/presets/useSelectWithLoading/hook.js +1 -1
- package/presets/useSelectWithLoading/index.css +2 -2
- package/shared.js +1 -1
- package/src/Component.mobile.tsx +2 -0
- package/src/Component.modal.mobile.tsx +2 -0
- package/src/components/base-select/Component.tsx +12 -2
- package/src/components/base-select-mobile/Component.tsx +16 -3
- package/src/components/base-select-mobile/index.module.css +1 -1
- package/src/components/options-list/Component.tsx +9 -1
- package/src/components/virtual-options-list/Component.tsx +12 -1
- package/src/presets/useSelectWithApply/options-list-with-apply/Component.tsx +1 -1
- package/src/typings.ts +5 -0
- package/{cssm/typings-9211a437.d.ts → typings-89f0cb07.d.ts} +5 -7
- package/typings.d.ts +4 -0
- package/cssm/desktop-63dec22f.d.ts +0 -6
- package/desktop-63dec22f.d.ts +0 -6
- package/esm/desktop-63dec22f.d.ts +0 -6
- package/modern/desktop-63dec22f.d.ts +0 -6
- /package/cssm/{hook-d1f5dd40.d.ts → hook-244c8d6e.d.ts} +0 -0
- /package/esm/{hook-3fd6d6d4.d.ts → hook-571dca86.d.ts} +0 -0
- /package/{hook-45ab0a9c.d.ts → hook-a6f060a1.d.ts} +0 -0
- /package/modern/{hook-5dd83d48.d.ts → hook-7e628eb4.d.ts} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: r40yx */
|
|
2
2
|
:root {
|
|
3
3
|
} /* deprecated */ :root {
|
|
4
4
|
--color-light-bg-primary: #fff; /* 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 */
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
--gap-s: 12px;
|
|
18
18
|
} :root {
|
|
19
19
|
} :root {
|
|
20
|
-
} .
|
|
20
|
+
} .select__footer_zbbxs {
|
|
21
21
|
background-color: var(--color-light-bg-primary);
|
|
22
22
|
padding: var(--gap-s);
|
|
23
23
|
outline: none
|
|
24
|
-
} .
|
|
24
|
+
} .select__footer_zbbxs > * + * {
|
|
25
25
|
margin-left: var(--gap-xs);
|
|
26
26
|
}
|
|
@@ -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 = {"desktop":"
|
|
14
|
+
var styles = {"desktop":"select__desktop_1a8hu","mobile":"select__mobile_1a8hu"};
|
|
15
15
|
require('./index.css')
|
|
16
16
|
|
|
17
17
|
var Header = function (_a) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 1qszj */
|
|
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 */
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
--gap-s: 12px;
|
|
17
17
|
} :root {
|
|
18
18
|
} :root {
|
|
19
|
-
} .
|
|
19
|
+
} .select__desktop_1a8hu {
|
|
20
20
|
padding: var(--gap-s);
|
|
21
|
-
} .
|
|
21
|
+
} .select__mobile_1a8hu {
|
|
22
22
|
padding: var(--gap-s) var(--gap-xs);
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "../../../hook-
|
|
1
|
+
export * from "../../../hook-a6f060a1";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-
|
|
5
|
+
var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-a6f060a1.js');
|
|
6
6
|
require('tslib');
|
|
7
7
|
require('react');
|
|
8
8
|
require('../../../utils.js');
|
|
@@ -18,7 +18,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
18
18
|
|
|
19
19
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
20
20
|
|
|
21
|
-
var styles = {"skeleton":"
|
|
21
|
+
var styles = {"skeleton":"select__skeleton_1eba2"};
|
|
22
22
|
require('./index.css')
|
|
23
23
|
|
|
24
24
|
function useSelectWithLoading(_a) {
|
package/shared.js
CHANGED
|
@@ -13,7 +13,7 @@ var components_baseOption_Component = require('./components/base-option/Componen
|
|
|
13
13
|
var components_search_Component = require('./components/search/Component.js');
|
|
14
14
|
var presets_useSelectWithLoading_hook = require('./presets/useSelectWithLoading/hook.js');
|
|
15
15
|
var presets_useLazyLoading_hook = require('./presets/useLazyLoading/hook.js');
|
|
16
|
-
var presets_useSelectWithApply_optionsListWithApply_Component = require('./hook-
|
|
16
|
+
var presets_useSelectWithApply_optionsListWithApply_Component = require('./hook-a6f060a1.js');
|
|
17
17
|
var utils = require('./utils.js');
|
|
18
18
|
require('react');
|
|
19
19
|
require('classnames');
|
package/src/Component.mobile.tsx
CHANGED
|
@@ -141,6 +141,8 @@ export const SelectMobile = forwardRef(
|
|
|
141
141
|
selected={selected}
|
|
142
142
|
onChange={onChange}
|
|
143
143
|
OptionsList={OptionsList}
|
|
144
|
+
showSearch={showSearch}
|
|
145
|
+
searchProps={searchProps}
|
|
144
146
|
bottomSheetProps={{
|
|
145
147
|
bottomAddons: useWithApplyHook && showHeaderWithSelectAll && (
|
|
146
148
|
<Header {...applyProps.optionsListProps.headerProps} mobile={true} />
|
|
@@ -134,6 +134,8 @@ export const SelectModalMobile = forwardRef(
|
|
|
134
134
|
onChange={onChange}
|
|
135
135
|
OptionsList={OptionsList}
|
|
136
136
|
optionsListProps={optionsListProps}
|
|
137
|
+
showSearch={showSearch}
|
|
138
|
+
searchProps={searchProps}
|
|
137
139
|
modalHeaderProps={{
|
|
138
140
|
bottomAddons: useWithApplyHook && showHeaderWithSelectAll && (
|
|
139
141
|
<Header {...applyProps.optionsListProps.headerProps} mobile={true} />
|
|
@@ -171,6 +171,7 @@ export const BaseSelect = forwardRef(
|
|
|
171
171
|
highlightedIndex,
|
|
172
172
|
toggleMenu,
|
|
173
173
|
openMenu,
|
|
174
|
+
setHighlightedIndex,
|
|
174
175
|
} = useCombobox<OptionShape>({
|
|
175
176
|
id,
|
|
176
177
|
isOpen: openProp,
|
|
@@ -274,7 +275,15 @@ export const BaseSelect = forwardRef(
|
|
|
274
275
|
|
|
275
276
|
const handleFieldKeyDown = (event: KeyboardEvent<HTMLDivElement | HTMLInputElement>) => {
|
|
276
277
|
inputProps.onKeyDown(event);
|
|
277
|
-
|
|
278
|
+
|
|
279
|
+
// https://caniuse.com/?search=KeyboardEvent.key
|
|
280
|
+
const isKeyUnsupported = event.key === 'Unidentified';
|
|
281
|
+
|
|
282
|
+
if (
|
|
283
|
+
autocomplete &&
|
|
284
|
+
!open &&
|
|
285
|
+
(isKeyUnsupported || event.key.length === 1 || event.key === 'Backspace')
|
|
286
|
+
) {
|
|
278
287
|
// Для автокомплита - открываем меню при начале ввода
|
|
279
288
|
openMenu();
|
|
280
289
|
}
|
|
@@ -330,7 +339,7 @@ export const BaseSelect = forwardRef(
|
|
|
330
339
|
size: optionsSize,
|
|
331
340
|
disabled: option.disabled,
|
|
332
341
|
highlighted: index === highlightedIndex,
|
|
333
|
-
selected: selectedItems.
|
|
342
|
+
selected: selectedItems.some(({ key }) => key === option.key),
|
|
334
343
|
dataTestId: getDataTestId(dataTestId, 'option'),
|
|
335
344
|
}),
|
|
336
345
|
[
|
|
@@ -540,6 +549,7 @@ export const BaseSelect = forwardRef(
|
|
|
540
549
|
>
|
|
541
550
|
<OptionsList
|
|
542
551
|
{...(optionsListProps as AnyObject)}
|
|
552
|
+
setHighlightedIndex={setHighlightedIndex}
|
|
543
553
|
optionsListWidth={optionsListWidth}
|
|
544
554
|
flatOptions={flatOptions}
|
|
545
555
|
highlightedIndex={highlightedIndex}
|
|
@@ -323,7 +323,15 @@ export const BaseSelectMobile = forwardRef(
|
|
|
323
323
|
|
|
324
324
|
const handleFieldKeyDown = (event: KeyboardEvent<HTMLDivElement | HTMLInputElement>) => {
|
|
325
325
|
inputProps.onKeyDown(event);
|
|
326
|
-
|
|
326
|
+
|
|
327
|
+
// https://caniuse.com/?search=KeyboardEvent.key
|
|
328
|
+
const isKeyUnsupported = event.key === 'Unidentified';
|
|
329
|
+
|
|
330
|
+
if (
|
|
331
|
+
autocomplete &&
|
|
332
|
+
!open &&
|
|
333
|
+
(isKeyUnsupported || event.key.length === 1 || event.key === 'Backspace')
|
|
334
|
+
) {
|
|
327
335
|
// Для автокомплита - открываем меню при начале ввода
|
|
328
336
|
openMenu();
|
|
329
337
|
}
|
|
@@ -349,7 +357,7 @@ export const BaseSelectMobile = forwardRef(
|
|
|
349
357
|
};
|
|
350
358
|
|
|
351
359
|
const getOptionProps = (option: OptionShape, index: number): OptionProps => {
|
|
352
|
-
const selectedItem = selectedItems.
|
|
360
|
+
const selectedItem = selectedItems.some(({ key }) => key === option.key);
|
|
353
361
|
|
|
354
362
|
return {
|
|
355
363
|
...(optionProps as object),
|
|
@@ -539,8 +547,13 @@ export const BaseSelectMobile = forwardRef(
|
|
|
539
547
|
<ModalMobile.Header
|
|
540
548
|
hasCloser={true}
|
|
541
549
|
sticky={true}
|
|
542
|
-
bottomAddons={renderSearch()}
|
|
543
550
|
{...modalHeaderProps}
|
|
551
|
+
bottomAddons={
|
|
552
|
+
<React.Fragment>
|
|
553
|
+
{renderSearch()}
|
|
554
|
+
{modalHeaderProps?.bottomAddons}
|
|
555
|
+
</React.Fragment>
|
|
556
|
+
}
|
|
544
557
|
>
|
|
545
558
|
{label || placeholder}
|
|
546
559
|
</ModalMobile.Header>
|
|
@@ -41,6 +41,7 @@ export const OptionsList = forwardRef<HTMLDivElement, OptionsListProps>(
|
|
|
41
41
|
optionsListWidth,
|
|
42
42
|
nativeScrollbar: nativeScrollbarProp,
|
|
43
43
|
flatOptions = [],
|
|
44
|
+
setHighlightedIndex,
|
|
44
45
|
},
|
|
45
46
|
ref,
|
|
46
47
|
) => {
|
|
@@ -120,17 +121,24 @@ export const OptionsList = forwardRef<HTMLDivElement, OptionsListProps>(
|
|
|
120
121
|
</div>
|
|
121
122
|
);
|
|
122
123
|
|
|
124
|
+
const resetHighlightedIndex = () => setHighlightedIndex?.(-1);
|
|
125
|
+
|
|
123
126
|
return (
|
|
124
127
|
<div
|
|
125
128
|
{...(nativeScrollbar && { 'data-test-id': dataTestId })}
|
|
126
129
|
className={cn(styles.optionsList, styles[size], className)}
|
|
127
130
|
>
|
|
128
|
-
{header &&
|
|
131
|
+
{header && (
|
|
132
|
+
<div className={styles.optionsListHeader} onMouseEnter={resetHighlightedIndex}>
|
|
133
|
+
{header}
|
|
134
|
+
</div>
|
|
135
|
+
)}
|
|
129
136
|
|
|
130
137
|
{nativeScrollbar ? renderWithNativeScrollbar() : renderWithCustomScrollbar()}
|
|
131
138
|
|
|
132
139
|
{showFooter && footer && (
|
|
133
140
|
<div
|
|
141
|
+
onMouseEnter={resetHighlightedIndex}
|
|
134
142
|
className={cn(styles.optionsListFooter, {
|
|
135
143
|
[styles.withBorder]:
|
|
136
144
|
visibleOptions && flatOptions.length > visibleOptions,
|
|
@@ -34,6 +34,7 @@ export const VirtualOptionsList = forwardRef<HTMLDivElement, OptionsListProps>(
|
|
|
34
34
|
optionsListWidth,
|
|
35
35
|
onScroll,
|
|
36
36
|
nativeScrollbar: nativeScrollbarProp,
|
|
37
|
+
setHighlightedIndex,
|
|
37
38
|
},
|
|
38
39
|
ref,
|
|
39
40
|
) => {
|
|
@@ -184,6 +185,8 @@ export const VirtualOptionsList = forwardRef<HTMLDivElement, OptionsListProps>(
|
|
|
184
185
|
return <div {...contentNodeProps}>{renderList()}</div>;
|
|
185
186
|
};
|
|
186
187
|
|
|
188
|
+
const resetHighlightedIndex = () => setHighlightedIndex?.(-1);
|
|
189
|
+
|
|
187
190
|
if (options.length === 0 && !emptyPlaceholder) {
|
|
188
191
|
return null;
|
|
189
192
|
}
|
|
@@ -193,7 +196,14 @@ export const VirtualOptionsList = forwardRef<HTMLDivElement, OptionsListProps>(
|
|
|
193
196
|
className={cn(styles.virtualOptionsList, styles[size], className)}
|
|
194
197
|
data-test-id={dataTestId}
|
|
195
198
|
>
|
|
196
|
-
{header &&
|
|
199
|
+
{header && (
|
|
200
|
+
<div
|
|
201
|
+
className={styles.virtualOptionsListHeader}
|
|
202
|
+
onMouseEnter={resetHighlightedIndex}
|
|
203
|
+
>
|
|
204
|
+
{header}
|
|
205
|
+
</div>
|
|
206
|
+
)}
|
|
197
207
|
|
|
198
208
|
{nativeScrollbar ? renderWithNativeScrollbar() : renderWithCustomScrollbar()}
|
|
199
209
|
|
|
@@ -203,6 +213,7 @@ export const VirtualOptionsList = forwardRef<HTMLDivElement, OptionsListProps>(
|
|
|
203
213
|
|
|
204
214
|
{showFooter && footer && (
|
|
205
215
|
<div
|
|
216
|
+
onMouseEnter={resetHighlightedIndex}
|
|
206
217
|
className={cn(styles.virtualOptionsListFooter, {
|
|
207
218
|
[styles.withBorder]:
|
|
208
219
|
visibleOptions && flatOptions.length > visibleOptions,
|
|
@@ -48,7 +48,7 @@ export const OptionsListWithApply = forwardRef<HTMLDivElement, OptionsListWithAp
|
|
|
48
48
|
const selected =
|
|
49
49
|
option.key === SELECT_ALL_KEY
|
|
50
50
|
? selectedDraft.length === flatOptions.length - 1
|
|
51
|
-
: selectedDraft.
|
|
51
|
+
: selectedDraft.some(({ key }) => key === option.key);
|
|
52
52
|
|
|
53
53
|
return {
|
|
54
54
|
...optionProps,
|
package/src/typings.ts
CHANGED
|
@@ -580,6 +580,11 @@ export type OptionsListProps = {
|
|
|
580
580
|
* Обработчик отмены изменений
|
|
581
581
|
*/
|
|
582
582
|
onClear?: () => void;
|
|
583
|
+
|
|
584
|
+
/**
|
|
585
|
+
* Указать индекс пункта для hover состояния
|
|
586
|
+
*/
|
|
587
|
+
setHighlightedIndex?: (index: number) => void;
|
|
583
588
|
};
|
|
584
589
|
|
|
585
590
|
export type OptgroupProps = {
|
|
@@ -69,6 +69,8 @@ type ComponentProps = {
|
|
|
69
69
|
* Дочерние элементы.
|
|
70
70
|
*/
|
|
71
71
|
children?: ReactNode;
|
|
72
|
+
};
|
|
73
|
+
type PrivateButtonProps = {
|
|
72
74
|
/**
|
|
73
75
|
* Основные стили компонента.
|
|
74
76
|
*/
|
|
@@ -80,16 +82,12 @@ type ComponentProps = {
|
|
|
80
82
|
*/
|
|
81
83
|
colorStylesMap: StyleColors;
|
|
82
84
|
};
|
|
83
|
-
type
|
|
84
|
-
type
|
|
85
|
-
type BaseButtonProps = Partial<AnchorBaseButtonProps | NativeBaseButtonProps>;
|
|
86
|
-
type AnchorButtonProps = Omit<BaseButtonProps, 'styles' | 'colorStylesMap'> & AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
87
|
-
type NativeButtonProps = Omit<BaseButtonProps, 'styles' | 'colorStylesMap'> & ButtonHTMLAttributes<HTMLButtonElement>;
|
|
88
|
-
type ButtonProps = Partial<AnchorButtonProps | NativeButtonProps> & {
|
|
85
|
+
type CommonButtonProps = ComponentProps & Partial<AnchorHTMLAttributes<HTMLAnchorElement> | ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
86
|
+
type ButtonProps = CommonButtonProps & {
|
|
89
87
|
/**
|
|
90
88
|
* Контрольная точка, с нее начинается desktop версия
|
|
91
89
|
* @default 1024
|
|
92
90
|
*/
|
|
93
91
|
breakpoint?: number;
|
|
94
92
|
};
|
|
95
|
-
export { StyleColors, ComponentProps,
|
|
93
|
+
export { StyleColors, ComponentProps, PrivateButtonProps, CommonButtonProps, ButtonProps };
|
package/typings.d.ts
CHANGED
|
@@ -459,6 +459,10 @@ type OptionsListProps = {
|
|
|
459
459
|
* Обработчик отмены изменений
|
|
460
460
|
*/
|
|
461
461
|
onClear?: () => void;
|
|
462
|
+
/**
|
|
463
|
+
* Указать индекс пункта для hover состояния
|
|
464
|
+
*/
|
|
465
|
+
setHighlightedIndex?: (index: number) => void;
|
|
462
466
|
};
|
|
463
467
|
type OptgroupProps = {
|
|
464
468
|
/**
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { AnchorButtonProps, NativeButtonProps } from "./typings-9211a437";
|
|
4
|
-
type ButtonDesktopProps = Partial<AnchorButtonProps | NativeButtonProps>;
|
|
5
|
-
declare const ButtonDesktop: React.ForwardRefExoticComponent<ButtonDesktopProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
|
|
6
|
-
export { ButtonDesktopProps, ButtonDesktop };
|
package/desktop-63dec22f.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { AnchorButtonProps, NativeButtonProps } from "./typings-9211a437";
|
|
4
|
-
type ButtonDesktopProps = Partial<AnchorButtonProps | NativeButtonProps>;
|
|
5
|
-
declare const ButtonDesktop: React.ForwardRefExoticComponent<ButtonDesktopProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
|
|
6
|
-
export { ButtonDesktopProps, ButtonDesktop };
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { AnchorButtonProps, NativeButtonProps } from "./typings-9211a437";
|
|
4
|
-
type ButtonDesktopProps = Partial<AnchorButtonProps | NativeButtonProps>;
|
|
5
|
-
declare const ButtonDesktop: React.ForwardRefExoticComponent<ButtonDesktopProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
|
|
6
|
-
export { ButtonDesktopProps, ButtonDesktop };
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { AnchorButtonProps, NativeButtonProps } from "./typings-9211a437";
|
|
4
|
-
type ButtonDesktopProps = Partial<AnchorButtonProps | NativeButtonProps>;
|
|
5
|
-
declare const ButtonDesktop: React.ForwardRefExoticComponent<ButtonDesktopProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
|
|
6
|
-
export { ButtonDesktopProps, ButtonDesktop };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|