@alfalab/core-components 47.0.0-beta.1 → 47.0.0-beta.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/base-modal/Component.js +2 -1
- package/base-modal/cssm/Component.js +2 -1
- package/base-modal/esm/Component.js +2 -1
- package/base-modal/esm/index.js +1 -0
- package/base-modal/modern/Component.js +2 -1
- package/base-modal/modern/index.js +1 -0
- package/calendar-range/utils.js +3 -1
- package/gallery/components/header/Component.js +1 -1
- package/gallery/components/header/buttons.js +1 -1
- package/gallery/components/image-viewer/component.js +1 -1
- package/gallery/components/image-viewer/slide.js +1 -1
- package/gallery/esm/Component.js +2 -2
- package/gallery/esm/components/header/Component.js +1 -1
- package/gallery/esm/components/header/buttons.js +1 -1
- package/gallery/esm/components/header/index.js +1 -1
- package/gallery/esm/components/image-preview/Component.js +1 -1
- package/gallery/esm/components/image-preview/index.js +1 -1
- package/gallery/esm/components/image-viewer/component.js +1 -1
- package/gallery/esm/components/image-viewer/index.js +1 -1
- package/gallery/esm/components/image-viewer/slide.js +1 -1
- package/gallery/esm/components/index.js +2 -2
- package/gallery/esm/components/navigation-bar/Component.js +1 -1
- package/gallery/esm/components/navigation-bar/index.js +1 -1
- package/gallery/esm/index.js +2 -2
- package/gallery/modern/Component.js +2 -2
- package/gallery/modern/components/header/Component.js +1 -1
- package/gallery/modern/components/header/buttons.js +1 -1
- package/gallery/modern/components/header/index.js +1 -1
- package/gallery/modern/components/image-preview/Component.js +1 -1
- package/gallery/modern/components/image-preview/index.js +1 -1
- package/gallery/modern/components/image-viewer/component.js +1 -1
- package/gallery/modern/components/image-viewer/index.js +1 -1
- package/gallery/modern/components/image-viewer/slide.js +1 -1
- package/gallery/modern/components/index.js +2 -2
- package/gallery/modern/components/navigation-bar/Component.js +1 -1
- package/gallery/modern/components/navigation-bar/index.js +1 -1
- package/gallery/modern/index.js +2 -2
- package/icon-button/Component.d.ts +10 -0
- package/icon-button/Component.js +4 -3
- package/icon-button/cssm/Component.d.ts +10 -0
- package/icon-button/cssm/Component.js +2 -1
- package/icon-button/cssm/default.module.css +35 -3
- package/icon-button/cssm/inverted.module.css +35 -3
- package/icon-button/default.css +35 -3
- package/icon-button/esm/Component.d.ts +10 -0
- package/icon-button/esm/Component.js +4 -3
- package/icon-button/esm/default.css +35 -3
- package/icon-button/esm/inverted.css +35 -3
- package/icon-button/inverted.css +35 -3
- package/icon-button/modern/Component.d.ts +10 -0
- package/icon-button/modern/Component.js +4 -3
- package/icon-button/modern/default.css +35 -3
- package/icon-button/modern/inverted.css +35 -3
- package/input/components/base-input/Component.d.ts +2 -2
- package/input/cssm/components/base-input/Component.d.ts +2 -2
- package/input/esm/components/base-input/Component.d.ts +2 -2
- package/input/modern/components/base-input/Component.d.ts +2 -2
- package/international-phone-input/{Component-1fe708ea.d.ts → Component-0f35b62f.d.ts} +1 -1
- package/international-phone-input/Component.responsive.d.ts +4 -4
- package/international-phone-input/components/base-international-phone-input/Component.d.ts +1 -1
- package/international-phone-input/cssm/{Component-1fe708ea.d.ts → Component-0f35b62f.d.ts} +1 -1
- package/international-phone-input/cssm/Component.responsive.d.ts +4 -4
- package/international-phone-input/cssm/components/base-international-phone-input/Component.d.ts +1 -1
- package/international-phone-input/cssm/index-7ca84eff.d.ts +15 -0
- package/international-phone-input/cssm/types.d.ts +1 -1
- package/international-phone-input/cssm/{typings-1fe708ea.d.ts → typings-0f35b62f.d.ts} +38 -0
- package/international-phone-input/cssm/utils-89376c31.d.ts +1 -1
- package/international-phone-input/esm/{Component-1fe708ea.d.ts → Component-0f35b62f.d.ts} +1 -1
- package/international-phone-input/esm/Component.responsive.d.ts +4 -4
- package/international-phone-input/esm/components/base-international-phone-input/Component.d.ts +1 -1
- package/international-phone-input/esm/index-7ca84eff.d.ts +15 -0
- package/international-phone-input/esm/types.d.ts +1 -1
- package/international-phone-input/esm/{typings-1fe708ea.d.ts → typings-0f35b62f.d.ts} +38 -0
- package/international-phone-input/esm/utils-89376c31.d.ts +1 -1
- package/international-phone-input/index-7ca84eff.d.ts +15 -0
- package/international-phone-input/modern/{Component-1fe708ea.d.ts → Component-0f35b62f.d.ts} +1 -1
- package/international-phone-input/modern/Component.responsive.d.ts +4 -4
- package/international-phone-input/modern/components/base-international-phone-input/Component.d.ts +1 -1
- package/international-phone-input/modern/index-7ca84eff.d.ts +15 -0
- package/international-phone-input/modern/types.d.ts +1 -1
- package/international-phone-input/modern/{typings-1fe708ea.d.ts → typings-0f35b62f.d.ts} +38 -0
- package/international-phone-input/modern/utils-89376c31.d.ts +1 -1
- package/international-phone-input/types.d.ts +1 -1
- package/international-phone-input/{typings-1fe708ea.d.ts → typings-0f35b62f.d.ts} +38 -0
- package/international-phone-input/utils-89376c31.d.ts +1 -1
- package/modal/components/controls/Component.js +1 -1
- package/modal/components/footer/Component.js +1 -1
- package/modal/esm/Component.responsive.js +1 -1
- package/modal/esm/components/controls/Component.js +1 -1
- package/modal/esm/components/controls/index.js +1 -1
- package/modal/esm/components/footer/Component.js +1 -1
- package/modal/esm/desktop/Component.desktop.js +1 -1
- package/modal/esm/desktop/index.js +1 -1
- package/modal/esm/index.js +1 -1
- package/modal/esm/mobile/Component.mobile.js +1 -1
- package/modal/esm/mobile/index.js +1 -1
- package/modal/modern/Component.responsive.js +1 -1
- package/modal/modern/components/controls/Component.js +1 -1
- package/modal/modern/components/controls/index.js +1 -1
- package/modal/modern/components/footer/Component.js +1 -1
- package/modal/modern/desktop/Component.desktop.js +1 -1
- package/modal/modern/desktop/index.js +1 -1
- package/modal/modern/index.js +1 -1
- package/modal/modern/mobile/Component.mobile.js +1 -1
- package/modal/modern/mobile/index.js +1 -1
- package/notification/Component.js +2 -1
- package/notification/cssm/Component.js +2 -1
- package/notification/esm/Component.js +2 -1
- package/notification/esm/index.js +1 -0
- package/notification/modern/Component.js +2 -1
- package/notification/modern/index.js +1 -0
- package/notification-manager/component.js +2 -1
- package/notification-manager/cssm/component.js +2 -1
- package/notification-manager/esm/component.js +2 -1
- package/notification-manager/esm/index.js +1 -0
- package/notification-manager/modern/component.js +2 -1
- package/notification-manager/modern/index.js +1 -0
- package/package.json +2 -1
- package/picker-button/Component-0f35b62f.d.ts +5 -0
- package/picker-button/Component-c44170fe.d.ts +2 -2
- package/picker-button/cssm/Component-0f35b62f.d.ts +5 -0
- package/picker-button/cssm/Component-c44170fe.d.ts +2 -2
- package/picker-button/cssm/field/Component.d.ts +1 -1
- package/picker-button/cssm/index-bdb4c6b9.d.ts +1 -13
- package/picker-button/cssm/{typings-1fe708ea.d.ts → typings-0f35b62f.d.ts} +32 -0
- package/picker-button/cssm/utils-89376c31.d.ts +1 -1
- package/picker-button/esm/Component-0f35b62f.d.ts +5 -0
- package/picker-button/esm/Component-c44170fe.d.ts +2 -2
- package/picker-button/esm/field/Component.d.ts +1 -1
- package/picker-button/esm/index-bdb4c6b9.d.ts +1 -13
- package/picker-button/esm/{typings-1fe708ea.d.ts → typings-0f35b62f.d.ts} +32 -0
- package/picker-button/esm/utils-89376c31.d.ts +1 -1
- package/picker-button/field/Component.d.ts +1 -1
- package/picker-button/index-bdb4c6b9.d.ts +1 -13
- package/picker-button/modern/Component-0f35b62f.d.ts +5 -0
- package/picker-button/modern/Component-c44170fe.d.ts +2 -2
- package/picker-button/modern/field/Component.d.ts +1 -1
- package/picker-button/modern/index-bdb4c6b9.d.ts +1 -13
- package/picker-button/modern/{typings-1fe708ea.d.ts → typings-0f35b62f.d.ts} +32 -0
- package/picker-button/modern/utils-89376c31.d.ts +1 -1
- package/picker-button/{typings-1fe708ea.d.ts → typings-0f35b62f.d.ts} +32 -0
- package/picker-button/utils-89376c31.d.ts +1 -1
- package/popover/Component.js +2 -1
- package/popover/cssm/Component.js +2 -1
- package/popover/esm/Component.js +2 -1
- package/popover/esm/index.js +1 -0
- package/popover/modern/Component.js +2 -1
- package/popover/modern/index.js +1 -0
- package/select/components/base-select/Component.js +2 -2
- package/select/components/options-list/Component.js +2 -2
- package/select/components/virtual-options-list/Component.js +4 -2
- package/select/cssm/components/base-select/Component.js +2 -2
- package/select/cssm/components/options-list/Component.js +2 -2
- package/select/cssm/components/virtual-options-list/Component.js +4 -2
- package/select/cssm/typings.d.ts +32 -0
- package/select/esm/components/base-select/Component.js +2 -2
- package/select/esm/components/options-list/Component.js +2 -2
- package/select/esm/components/virtual-options-list/Component.js +4 -2
- package/select/esm/typings.d.ts +32 -0
- package/select/modern/components/base-select/Component.js +2 -2
- package/select/modern/components/options-list/Component.js +2 -2
- package/select/modern/components/virtual-options-list/Component.js +2 -2
- package/select/modern/typings.d.ts +32 -0
- package/select/typings.d.ts +32 -0
- package/stack/component.js +4 -4
- package/stack/cssm/component.js +4 -4
- package/stack/cssm/index.d.ts +0 -1
- package/stack/cssm/index.js +0 -3
- package/stack/esm/component.js +1 -1
- package/stack/esm/index.d.ts +0 -1
- package/stack/esm/index.js +1 -1
- package/stack/index.d.ts +0 -1
- package/stack/index.js +0 -3
- package/stack/modern/component.js +1 -1
- package/stack/modern/index.d.ts +0 -1
- package/stack/modern/index.js +1 -1
- package/status/Component.d.ts +2 -1
- package/status/Component.js +2 -2
- package/status/cssm/Component.d.ts +2 -1
- package/status/cssm/Component.js +1 -1
- package/status/cssm/index.module.css +74 -29
- package/status/esm/Component.d.ts +2 -1
- package/status/esm/Component.js +2 -2
- package/status/esm/index.css +55 -27
- package/status/index.css +55 -27
- package/status/modern/Component.d.ts +2 -1
- package/status/modern/Component.js +2 -2
- package/status/modern/index.css +55 -27
- package/themes/click.css +0 -1516
- package/themes/compiled/mobile-dark-bluetint.css +210 -50
- package/themes/corp.css +0 -1516
- package/themes/intranet.css +0 -1516
- package/themes/mobile.css +0 -1516
- package/themes/site.css +0 -1516
- package/toast/components/base-toast/component.js +2 -1
- package/toast/cssm/components/base-toast/component.js +2 -1
- package/toast/esm/Component.responsive.js +1 -0
- package/toast/esm/components/base-toast/component.js +2 -1
- package/toast/esm/components/base-toast/index.js +1 -0
- package/toast/esm/desktop/Component.desktop.js +1 -0
- package/toast/esm/desktop/index.js +1 -0
- package/toast/esm/index.js +1 -0
- package/toast/esm/mobile/Component.mobile.js +1 -0
- package/toast/esm/mobile/index.js +1 -0
- package/toast/modern/Component.responsive.js +1 -0
- package/toast/modern/components/base-toast/component.js +2 -1
- package/toast/modern/components/base-toast/index.js +1 -0
- package/toast/modern/desktop/Component.desktop.js +1 -0
- package/toast/modern/desktop/index.js +1 -0
- package/toast/modern/index.js +1 -0
- package/toast/modern/mobile/Component.mobile.js +1 -0
- package/toast/modern/mobile/index.js +1 -0
- package/toast-plate/components/base-toast-plate/component.js +1 -1
- package/toast-plate/components/base-toast-plate/utils/getBaseToastPlateTestIds.js +1 -1
- package/toast-plate/esm/Component.responsive.js +1 -1
- package/toast-plate/esm/components/base-toast-plate/component.js +1 -1
- package/toast-plate/esm/components/base-toast-plate/index.js +1 -1
- package/toast-plate/esm/components/base-toast-plate/utils/getBaseToastPlateTestIds.js +1 -1
- package/toast-plate/esm/desktop/Component.desktop.js +1 -1
- package/toast-plate/esm/desktop/index.js +1 -1
- package/toast-plate/esm/index-307da6d7.d.ts +1 -1
- package/toast-plate/esm/index.js +1 -1
- package/toast-plate/esm/mobile/Component.mobile.js +1 -1
- package/toast-plate/esm/mobile/index.js +1 -1
- package/toast-plate/index-307da6d7.d.ts +1 -1
- package/toast-plate/modern/Component.responsive.js +1 -1
- package/toast-plate/modern/components/base-toast-plate/component.js +1 -1
- package/toast-plate/modern/components/base-toast-plate/index.js +1 -1
- package/toast-plate/modern/components/base-toast-plate/utils/getBaseToastPlateTestIds.js +1 -1
- package/toast-plate/modern/desktop/Component.desktop.js +1 -1
- package/toast-plate/modern/desktop/index.js +1 -1
- package/toast-plate/modern/index-307da6d7.d.ts +1 -1
- package/toast-plate/modern/index.js +1 -1
- package/toast-plate/modern/mobile/Component.mobile.js +1 -1
- package/toast-plate/modern/mobile/index.js +1 -1
- package/universal-date-input/cssm/index-5712fce2.d.ts +1 -13
- package/universal-date-input/esm/index-5712fce2.d.ts +1 -13
- package/universal-date-input/index-5712fce2.d.ts +1 -13
- package/universal-date-input/modern/index-5712fce2.d.ts +1 -13
- package/international-phone-input/cssm/index-136acbb1.d.ts +0 -28
- package/international-phone-input/esm/index-136acbb1.d.ts +0 -28
- package/international-phone-input/index-136acbb1.d.ts +0 -28
- package/international-phone-input/modern/index-136acbb1.d.ts +0 -28
- package/picker-button/Component-1fe708ea.d.ts +0 -5
- package/picker-button/cssm/Component-1fe708ea.d.ts +0 -5
- package/picker-button/esm/Component-1fe708ea.d.ts +0 -5
- package/picker-button/modern/Component-1fe708ea.d.ts +0 -5
- package/stack/context.d.ts +0 -29
- package/stack/context.js +0 -34
- package/stack/cssm/context.d.ts +0 -29
- package/stack/cssm/context.js +0 -34
- package/stack/esm/context.d.ts +0 -29
- package/stack/esm/context.js +0 -31
- package/stack/modern/context.d.ts +0 -29
- package/stack/modern/context.js +0 -31
- /package/gallery/{buttons-36b3ca68.d.ts → buttons-2c587253.d.ts} +0 -0
- /package/gallery/{buttons-36b3ca68.js → buttons-2c587253.js} +0 -0
- /package/gallery/esm/{buttons-49e609ab.d.ts → buttons-fb317559.d.ts} +0 -0
- /package/gallery/esm/{buttons-49e609ab.js → buttons-fb317559.js} +0 -0
- /package/gallery/esm/{slide-01af06f1.d.ts → slide-cb44c8ba.d.ts} +0 -0
- /package/gallery/esm/{slide-01af06f1.js → slide-cb44c8ba.js} +0 -0
- /package/gallery/modern/{buttons-9e01c41d.d.ts → buttons-0d4c9cc6.d.ts} +0 -0
- /package/gallery/modern/{buttons-9e01c41d.js → buttons-0d4c9cc6.js} +0 -0
- /package/gallery/modern/{slide-0932c021.d.ts → slide-3771e01f.d.ts} +0 -0
- /package/gallery/modern/{slide-0932c021.js → slide-3771e01f.js} +0 -0
- /package/gallery/{slide-cbb98cfd.d.ts → slide-a4b1c89f.d.ts} +0 -0
- /package/gallery/{slide-cbb98cfd.js → slide-a4b1c89f.js} +0 -0
- /package/modal/esm/{layout.module-8f4bb5c4.js → layout.module-5977466c.js} +0 -0
- /package/modal/{layout.module-dd4e6f62.js → layout.module-74b07012.js} +0 -0
- /package/modal/modern/{layout.module-6bc66458.js → layout.module-565c309a.js} +0 -0
- /package/toast-plate/esm/{getDataTestId-1e8085ca.d.ts → getDataTestId-32922464.d.ts} +0 -0
- /package/toast-plate/esm/{getDataTestId-1e8085ca.js → getDataTestId-32922464.js} +0 -0
- /package/toast-plate/{getDataTestId-4ff6c5ff.d.ts → getDataTestId-64de4ccf.d.ts} +0 -0
- /package/toast-plate/{getDataTestId-4ff6c5ff.js → getDataTestId-64de4ccf.js} +0 -0
- /package/toast-plate/modern/{getDataTestId-11ebf806.d.ts → getDataTestId-4d724a67.d.ts} +0 -0
- /package/toast-plate/modern/{getDataTestId-11ebf806.js → getDataTestId-4d724a67.js} +0 -0
|
@@ -174,18 +174,6 @@ declare function isScrolledToBottom(target: HTMLElement): boolean;
|
|
|
174
174
|
declare function hasScrollbar(target: HTMLElement): boolean;
|
|
175
175
|
declare const restoreContainerStyles: (container: HTMLElement) => void;
|
|
176
176
|
declare const handleContainer: (container?: HTMLElement, shouldIOSLock?: boolean) => void;
|
|
177
|
-
/**
|
|
178
|
-
* Набор констант для z-index соответствующих классов компонентов.
|
|
179
|
-
* Значения выбраны по приоритету.
|
|
180
|
-
*/
|
|
181
|
-
declare const stackingOrder: {
|
|
182
|
-
FOCUSED: number;
|
|
183
|
-
DEFAULT: number;
|
|
184
|
-
POPOVER: number;
|
|
185
|
-
MODAL: number;
|
|
186
|
-
TOAST: number;
|
|
187
|
-
};
|
|
188
|
-
declare const StackingContext: import("react").Context<number>;
|
|
189
177
|
type StackProps = {
|
|
190
178
|
/**
|
|
191
179
|
* Render prop, в который передается функция.
|
|
@@ -226,5 +214,5 @@ declare class GlobalStore {
|
|
|
226
214
|
constructor();
|
|
227
215
|
getModalStore: () => ModalStore;
|
|
228
216
|
}
|
|
229
|
-
export { BaseModalProps, BaseModalContext, BaseModal, isScrolledToTop, isScrolledToBottom, hasScrollbar, restoreContainerStyles, handleContainer,
|
|
217
|
+
export { BaseModalProps, BaseModalContext, BaseModal, isScrolledToTop, isScrolledToBottom, hasScrollbar, restoreContainerStyles, handleContainer, StackProps, Stack, lockScroll, unlockScroll, syncHeight, PORTAL_CONTAINER_ATTRIBUTE, getDefaultPortalContainer, setRef, getModalStore, GlobalStore };
|
|
230
218
|
export type { SavedStyle };
|
|
@@ -58,7 +58,7 @@ type BaseInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type
|
|
|
58
58
|
/**
|
|
59
59
|
* Атрибут type
|
|
60
60
|
*/
|
|
61
|
-
type?: 'number' | '
|
|
61
|
+
type?: 'number' | 'email' | 'money' | 'password' | 'tel' | 'text';
|
|
62
62
|
/**
|
|
63
63
|
* Ref для обертки input
|
|
64
64
|
*/
|
|
@@ -196,7 +196,7 @@ declare const BaseInput: React.ForwardRefExoticComponent<Omit<React.InputHTMLAtt
|
|
|
196
196
|
/**
|
|
197
197
|
* Атрибут type
|
|
198
198
|
*/
|
|
199
|
-
type?: "number" | "text" | "tel" | "email" | "password" | "
|
|
199
|
+
type?: "number" | "text" | "tel" | "email" | "password" | "money" | undefined;
|
|
200
200
|
/**
|
|
201
201
|
* Ref для обертки input
|
|
202
202
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { ComponentType, SVGProps } from "react";
|
|
4
4
|
import { ButtonProps } from "../../../button";
|
|
5
|
-
import { FieldProps as BaseFieldProps } from "../typings-
|
|
5
|
+
import { FieldProps as BaseFieldProps } from "../typings-0f35b62f";
|
|
6
6
|
import { PickerButtonSize, PickerButtonVariant } from "../types";
|
|
7
7
|
type FieldProps = Omit<BaseFieldProps, 'size' | 'hint' | 'success' | 'error' | 'placeholder'> & ButtonProps & {
|
|
8
8
|
buttonSize?: PickerButtonSize;
|
|
@@ -174,18 +174,6 @@ declare function isScrolledToBottom(target: HTMLElement): boolean;
|
|
|
174
174
|
declare function hasScrollbar(target: HTMLElement): boolean;
|
|
175
175
|
declare const restoreContainerStyles: (container: HTMLElement) => void;
|
|
176
176
|
declare const handleContainer: (container?: HTMLElement, shouldIOSLock?: boolean) => void;
|
|
177
|
-
/**
|
|
178
|
-
* Набор констант для z-index соответствующих классов компонентов.
|
|
179
|
-
* Значения выбраны по приоритету.
|
|
180
|
-
*/
|
|
181
|
-
declare const stackingOrder: {
|
|
182
|
-
FOCUSED: number;
|
|
183
|
-
DEFAULT: number;
|
|
184
|
-
POPOVER: number;
|
|
185
|
-
MODAL: number;
|
|
186
|
-
TOAST: number;
|
|
187
|
-
};
|
|
188
|
-
declare const StackingContext: import("react").Context<number>;
|
|
189
177
|
type StackProps = {
|
|
190
178
|
/**
|
|
191
179
|
* Render prop, в который передается функция.
|
|
@@ -226,5 +214,5 @@ declare class GlobalStore {
|
|
|
226
214
|
constructor();
|
|
227
215
|
getModalStore: () => ModalStore;
|
|
228
216
|
}
|
|
229
|
-
export { BaseModalProps, BaseModalContext, BaseModal, isScrolledToTop, isScrolledToBottom, hasScrollbar, restoreContainerStyles, handleContainer,
|
|
217
|
+
export { BaseModalProps, BaseModalContext, BaseModal, isScrolledToTop, isScrolledToBottom, hasScrollbar, restoreContainerStyles, handleContainer, StackProps, Stack, lockScroll, unlockScroll, syncHeight, PORTAL_CONTAINER_ATTRIBUTE, getDefaultPortalContainer, setRef, getModalStore, GlobalStore };
|
|
230
218
|
export type { SavedStyle };
|
|
@@ -881,6 +881,18 @@ type OptionsListProps = {
|
|
|
881
881
|
* Указать индекс пункта для hover состояния
|
|
882
882
|
*/
|
|
883
883
|
setHighlightedIndex?: (index: number) => void;
|
|
884
|
+
/**
|
|
885
|
+
* Обработчик добавления в список выбранных вариантов
|
|
886
|
+
*/
|
|
887
|
+
addSelectedItem?: (item: OptionShape) => void;
|
|
888
|
+
/**
|
|
889
|
+
* Обработчик удаления из списка выбранных вариантов
|
|
890
|
+
*/
|
|
891
|
+
removeSelectedItem?: (item: OptionShape) => void;
|
|
892
|
+
/**
|
|
893
|
+
* Значение поиска
|
|
894
|
+
*/
|
|
895
|
+
search?: string;
|
|
884
896
|
};
|
|
885
897
|
type OptgroupProps = {
|
|
886
898
|
/**
|
|
@@ -900,6 +912,26 @@ type OptgroupProps = {
|
|
|
900
912
|
* Дочерние элементы
|
|
901
913
|
*/
|
|
902
914
|
children?: ReactNode;
|
|
915
|
+
/**
|
|
916
|
+
* Список вариантов выбора в группе
|
|
917
|
+
*/
|
|
918
|
+
options?: OptionShape[];
|
|
919
|
+
/**
|
|
920
|
+
* Список выбранных вариантов в группе
|
|
921
|
+
*/
|
|
922
|
+
selectedItems?: OptionShape[];
|
|
923
|
+
/**
|
|
924
|
+
* Обработчик добавления в список выбранных вариантов
|
|
925
|
+
*/
|
|
926
|
+
addSelectedItem?: (item: OptionShape) => void;
|
|
927
|
+
/**
|
|
928
|
+
* Обработчик удаления из списка выбранных вариантов
|
|
929
|
+
*/
|
|
930
|
+
removeSelectedItem?: (item: OptionShape) => void;
|
|
931
|
+
/**
|
|
932
|
+
* Значение поиска
|
|
933
|
+
*/
|
|
934
|
+
search?: string;
|
|
903
935
|
};
|
|
904
936
|
type OptionProps = {
|
|
905
937
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode, RefObject } from 'react';
|
|
2
|
-
import { BaseSelectProps, GroupShape, OptionShape } from "./typings-
|
|
2
|
+
import { BaseSelectProps, GroupShape, OptionShape } from "./typings-0f35b62f";
|
|
3
3
|
declare const isGroup: (item: OptionShape | GroupShape) => item is GroupShape;
|
|
4
4
|
declare const isOptionShape: (item: OptionShape | string | null) => item is OptionShape;
|
|
5
5
|
declare const joinOptions: ({ selected, selectedMultiple, }: {
|
|
@@ -881,6 +881,18 @@ type OptionsListProps = {
|
|
|
881
881
|
* Указать индекс пункта для hover состояния
|
|
882
882
|
*/
|
|
883
883
|
setHighlightedIndex?: (index: number) => void;
|
|
884
|
+
/**
|
|
885
|
+
* Обработчик добавления в список выбранных вариантов
|
|
886
|
+
*/
|
|
887
|
+
addSelectedItem?: (item: OptionShape) => void;
|
|
888
|
+
/**
|
|
889
|
+
* Обработчик удаления из списка выбранных вариантов
|
|
890
|
+
*/
|
|
891
|
+
removeSelectedItem?: (item: OptionShape) => void;
|
|
892
|
+
/**
|
|
893
|
+
* Значение поиска
|
|
894
|
+
*/
|
|
895
|
+
search?: string;
|
|
884
896
|
};
|
|
885
897
|
type OptgroupProps = {
|
|
886
898
|
/**
|
|
@@ -900,6 +912,26 @@ type OptgroupProps = {
|
|
|
900
912
|
* Дочерние элементы
|
|
901
913
|
*/
|
|
902
914
|
children?: ReactNode;
|
|
915
|
+
/**
|
|
916
|
+
* Список вариантов выбора в группе
|
|
917
|
+
*/
|
|
918
|
+
options?: OptionShape[];
|
|
919
|
+
/**
|
|
920
|
+
* Список выбранных вариантов в группе
|
|
921
|
+
*/
|
|
922
|
+
selectedItems?: OptionShape[];
|
|
923
|
+
/**
|
|
924
|
+
* Обработчик добавления в список выбранных вариантов
|
|
925
|
+
*/
|
|
926
|
+
addSelectedItem?: (item: OptionShape) => void;
|
|
927
|
+
/**
|
|
928
|
+
* Обработчик удаления из списка выбранных вариантов
|
|
929
|
+
*/
|
|
930
|
+
removeSelectedItem?: (item: OptionShape) => void;
|
|
931
|
+
/**
|
|
932
|
+
* Значение поиска
|
|
933
|
+
*/
|
|
934
|
+
search?: string;
|
|
903
935
|
};
|
|
904
936
|
type OptionProps = {
|
|
905
937
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode, RefObject } from 'react';
|
|
2
|
-
import { BaseSelectProps, GroupShape, OptionShape } from "./typings-
|
|
2
|
+
import { BaseSelectProps, GroupShape, OptionShape } from "./typings-0f35b62f";
|
|
3
3
|
declare const isGroup: (item: OptionShape | GroupShape) => item is GroupShape;
|
|
4
4
|
declare const isOptionShape: (item: OptionShape | string | null) => item is OptionShape;
|
|
5
5
|
declare const joinOptions: ({ selected, selectedMultiple, }: {
|
package/popover/Component.js
CHANGED
|
@@ -11,6 +11,7 @@ var maxSize = require('popper-max-size-modifier');
|
|
|
11
11
|
var coreComponentsPortal = require('../portal');
|
|
12
12
|
var coreComponentsStack = require('../stack');
|
|
13
13
|
var hooks = require('@alfalab/hooks');
|
|
14
|
+
var stackContext = require('@alfalab/stack-context');
|
|
14
15
|
|
|
15
16
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
16
17
|
|
|
@@ -65,7 +66,7 @@ function getArrowPadding(_a) {
|
|
|
65
66
|
return 0;
|
|
66
67
|
}
|
|
67
68
|
var Popover = React.forwardRef(function (_a, ref) {
|
|
68
|
-
var children = _a.children, getPortalContainer = _a.getPortalContainer, _b = _a.transition, transition = _b === void 0 ? DEFAULT_TRANSITION : _b, anchorElement = _a.anchorElement, useAnchorWidth = _a.useAnchorWidth, _c = _a.offset, offset = _c === void 0 ? DEFAULT_OFFSET : _c, _d = _a.withArrow, withArrow = _d === void 0 ? false : _d, _e = _a.withTransition, withTransition = _e === void 0 ? true : _e, _f = _a.position, position = _f === void 0 ? 'left' : _f, preventFlip = _a.preventFlip, popperClassName = _a.popperClassName, arrowClassName = _a.arrowClassName, className = _a.className, open = _a.open, dataTestId = _a.dataTestId, update = _a.update, _g = _a.transitionDuration, transitionDuration = _g === void 0 ? "".concat(transition.timeout, "ms") : _g, _h = _a.zIndex, zIndex = _h === void 0 ?
|
|
69
|
+
var children = _a.children, getPortalContainer = _a.getPortalContainer, _b = _a.transition, transition = _b === void 0 ? DEFAULT_TRANSITION : _b, anchorElement = _a.anchorElement, useAnchorWidth = _a.useAnchorWidth, _c = _a.offset, offset = _c === void 0 ? DEFAULT_OFFSET : _c, _d = _a.withArrow, withArrow = _d === void 0 ? false : _d, _e = _a.withTransition, withTransition = _e === void 0 ? true : _e, _f = _a.position, position = _f === void 0 ? 'left' : _f, preventFlip = _a.preventFlip, popperClassName = _a.popperClassName, arrowClassName = _a.arrowClassName, className = _a.className, open = _a.open, dataTestId = _a.dataTestId, update = _a.update, _g = _a.transitionDuration, transitionDuration = _g === void 0 ? "".concat(transition.timeout, "ms") : _g, _h = _a.zIndex, zIndex = _h === void 0 ? stackContext.stackingOrder.POPOVER : _h, fallbackPlacements = _a.fallbackPlacements, _j = _a.preventOverflow, preventOverflow = _j === void 0 ? true : _j, _k = _a.availableHeight, availableHeight = _k === void 0 ? false : _k;
|
|
69
70
|
var _l = React.useState(anchorElement), referenceElement = _l[0], setReferenceElement = _l[1];
|
|
70
71
|
var _m = React.useState(null), popperElement = _m[0], setPopperElement = _m[1];
|
|
71
72
|
var _o = React.useState(null), arrowElement = _o[0], setArrowElement = _o[1];
|
|
@@ -11,6 +11,7 @@ var maxSize = require('popper-max-size-modifier');
|
|
|
11
11
|
var coreComponentsPortal = require('../../portal/cssm');
|
|
12
12
|
var coreComponentsStack = require('../../stack/cssm');
|
|
13
13
|
var hooks = require('@alfalab/hooks');
|
|
14
|
+
var stackContext = require('@alfalab/stack-context');
|
|
14
15
|
var styles = require('./index.module.css');
|
|
15
16
|
|
|
16
17
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
@@ -64,7 +65,7 @@ function getArrowPadding(_a) {
|
|
|
64
65
|
return 0;
|
|
65
66
|
}
|
|
66
67
|
var Popover = React.forwardRef(function (_a, ref) {
|
|
67
|
-
var children = _a.children, getPortalContainer = _a.getPortalContainer, _b = _a.transition, transition = _b === void 0 ? DEFAULT_TRANSITION : _b, anchorElement = _a.anchorElement, useAnchorWidth = _a.useAnchorWidth, _c = _a.offset, offset = _c === void 0 ? DEFAULT_OFFSET : _c, _d = _a.withArrow, withArrow = _d === void 0 ? false : _d, _e = _a.withTransition, withTransition = _e === void 0 ? true : _e, _f = _a.position, position = _f === void 0 ? 'left' : _f, preventFlip = _a.preventFlip, popperClassName = _a.popperClassName, arrowClassName = _a.arrowClassName, className = _a.className, open = _a.open, dataTestId = _a.dataTestId, update = _a.update, _g = _a.transitionDuration, transitionDuration = _g === void 0 ? "".concat(transition.timeout, "ms") : _g, _h = _a.zIndex, zIndex = _h === void 0 ?
|
|
68
|
+
var children = _a.children, getPortalContainer = _a.getPortalContainer, _b = _a.transition, transition = _b === void 0 ? DEFAULT_TRANSITION : _b, anchorElement = _a.anchorElement, useAnchorWidth = _a.useAnchorWidth, _c = _a.offset, offset = _c === void 0 ? DEFAULT_OFFSET : _c, _d = _a.withArrow, withArrow = _d === void 0 ? false : _d, _e = _a.withTransition, withTransition = _e === void 0 ? true : _e, _f = _a.position, position = _f === void 0 ? 'left' : _f, preventFlip = _a.preventFlip, popperClassName = _a.popperClassName, arrowClassName = _a.arrowClassName, className = _a.className, open = _a.open, dataTestId = _a.dataTestId, update = _a.update, _g = _a.transitionDuration, transitionDuration = _g === void 0 ? "".concat(transition.timeout, "ms") : _g, _h = _a.zIndex, zIndex = _h === void 0 ? stackContext.stackingOrder.POPOVER : _h, fallbackPlacements = _a.fallbackPlacements, _j = _a.preventOverflow, preventOverflow = _j === void 0 ? true : _j, _k = _a.availableHeight, availableHeight = _k === void 0 ? false : _k;
|
|
68
69
|
var _l = React.useState(anchorElement), referenceElement = _l[0], setReferenceElement = _l[1];
|
|
69
70
|
var _m = React.useState(null), popperElement = _m[0], setPopperElement = _m[1];
|
|
70
71
|
var _o = React.useState(null), arrowElement = _o[0], setArrowElement = _o[1];
|
package/popover/esm/Component.js
CHANGED
|
@@ -7,8 +7,9 @@ import { ResizeObserver } from '@juggle/resize-observer';
|
|
|
7
7
|
import cn from 'classnames';
|
|
8
8
|
import maxSize from 'popper-max-size-modifier';
|
|
9
9
|
import { Portal } from '../../portal/esm';
|
|
10
|
-
import {
|
|
10
|
+
import { Stack } from '../../stack/esm';
|
|
11
11
|
import { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';
|
|
12
|
+
import { stackingOrder } from '@alfalab/stack-context';
|
|
12
13
|
|
|
13
14
|
var styles = {"component":"popover__component_6dkfc","inner":"popover__inner_6dkfc","scrollableContent":"popover__scrollableContent_6dkfc","arrow":"popover__arrow_6dkfc","enter":"popover__enter_6dkfc","enterActive":"popover__enterActive_6dkfc","exit":"popover__exit_6dkfc","exitActive":"popover__exitActive_6dkfc"};
|
|
14
15
|
require('./index.css');
|
package/popover/esm/index.js
CHANGED
|
@@ -6,8 +6,9 @@ import { ResizeObserver } from '@juggle/resize-observer';
|
|
|
6
6
|
import cn from 'classnames';
|
|
7
7
|
import maxSize from 'popper-max-size-modifier';
|
|
8
8
|
import { Portal } from '../../portal/modern';
|
|
9
|
-
import { Stack
|
|
9
|
+
import { Stack } from '../../stack/modern';
|
|
10
10
|
import { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';
|
|
11
|
+
import { stackingOrder } from '@alfalab/stack-context';
|
|
11
12
|
|
|
12
13
|
const styles = {"component":"popover__component_6dkfc","inner":"popover__inner_6dkfc","scrollableContent":"popover__scrollableContent_6dkfc","arrow":"popover__arrow_6dkfc","enter":"popover__enter_6dkfc","enterActive":"popover__enterActive_6dkfc","exit":"popover__exit_6dkfc","exitActive":"popover__exitActive_6dkfc"};
|
|
13
14
|
require('./index.css');
|
package/popover/modern/index.js
CHANGED
|
@@ -361,9 +361,9 @@ function (_a, ref) {
|
|
|
361
361
|
return null;
|
|
362
362
|
var listProps = optionsListProps;
|
|
363
363
|
return (React__default.default.createElement("div", tslib.__assign({}, menuProps, { ref: view === 'desktop' ? menuRef : undefined, className: cn__default.default(optionsListClassName, view === 'mobile' && mobileStyles.optionsListWrapper, view === 'desktop' && styles.optionsListWrapper) }),
|
|
364
|
-
React__default.default.createElement(OptionsList, tslib.__assign({}, listProps, { ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn__default.default((_a = {}, _a[mobileStyles.optionsList] = view === 'mobile', _a)), scrollbarClassName: cn__default.default((_b = {}, _b[mobileStyles.scrollbar] = view === 'mobile', _b)), 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: view === 'desktop' ? visibleOptions : 0, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn__default.default(optionGroupClassName, (_c = {},
|
|
364
|
+
React__default.default.createElement(OptionsList, tslib.__assign({}, listProps, { ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn__default.default((_a = {}, _a[mobileStyles.optionsList] = view === 'mobile', _a)), scrollbarClassName: cn__default.default((_b = {}, _b[mobileStyles.scrollbar] = view === 'mobile', _b)), optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, toggleMenu: toggleMenu, getOptionProps: getOptionProps, visibleOptions: view === 'desktop' ? visibleOptions : 0, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn__default.default(optionGroupClassName, (_c = {},
|
|
365
365
|
_c[mobileStyles.optionGroup] = view === 'mobile',
|
|
366
|
-
_c)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll })),
|
|
366
|
+
_c)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search })),
|
|
367
367
|
view === 'desktop' && React__default.default.createElement("div", { className: styles.optionsListBorder })));
|
|
368
368
|
};
|
|
369
369
|
var renderInPopover = function () {
|
|
@@ -27,7 +27,7 @@ var createCounter = function () {
|
|
|
27
27
|
};
|
|
28
28
|
var OptionsList = React.forwardRef(function (_a, ref) {
|
|
29
29
|
var _b, _c;
|
|
30
|
-
var _d = _a.size, size = _d === void 0 ? 48 : _d, className = _a.className, optionGroupClassName = _a.optionGroupClassName, scrollbarClassName = _a.scrollbarClassName, Option = _a.Option, getOptionProps = _a.getOptionProps, _e = _a.options, options = _e === void 0 ? [] : _e, _f = _a.Optgroup, Optgroup = _f === void 0 ? components_optgroup_Component.Optgroup : _f, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _g = _a.visibleOptions, visibleOptions = _g === void 0 ? consts.DEFAULT_VISIBLE_OPTIONS : _g, onScroll = _a.onScroll, open = _a.open, header = _a.header, footer = _a.footer, _h = _a.showFooter, showFooter = _h === void 0 ? true : _h, optionsListWidth = _a.optionsListWidth, nativeScrollbarProp = _a.nativeScrollbar, _j = _a.flatOptions, flatOptions = _j === void 0 ? [] : _j, setHighlightedIndex = _a.setHighlightedIndex;
|
|
30
|
+
var _d = _a.size, size = _d === void 0 ? 48 : _d, className = _a.className, optionGroupClassName = _a.optionGroupClassName, scrollbarClassName = _a.scrollbarClassName, Option = _a.Option, getOptionProps = _a.getOptionProps, _e = _a.options, options = _e === void 0 ? [] : _e, _f = _a.Optgroup, Optgroup = _f === void 0 ? components_optgroup_Component.Optgroup : _f, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _g = _a.visibleOptions, visibleOptions = _g === void 0 ? consts.DEFAULT_VISIBLE_OPTIONS : _g, onScroll = _a.onScroll, open = _a.open, header = _a.header, footer = _a.footer, _h = _a.showFooter, showFooter = _h === void 0 ? true : _h, optionsListWidth = _a.optionsListWidth, nativeScrollbarProp = _a.nativeScrollbar, _j = _a.flatOptions, flatOptions = _j === void 0 ? [] : _j, setHighlightedIndex = _a.setHighlightedIndex, selectedItems = _a.selectedItems, addSelectedItem = _a.addSelectedItem, removeSelectedItem = _a.removeSelectedItem, search = _a.search;
|
|
31
31
|
var _k = React.useState(true), scrollTop = _k[0], setScrollTop = _k[1];
|
|
32
32
|
var _l = React.useState(false), scrollBottom = _l[0], setScrollBottom = _l[1];
|
|
33
33
|
var query = '(max-width: 1023px)';
|
|
@@ -47,7 +47,7 @@ var OptionsList = React.forwardRef(function (_a, ref) {
|
|
|
47
47
|
var listRef = React.useRef(null);
|
|
48
48
|
var scrollbarRef = React.useRef(null);
|
|
49
49
|
var counter = createCounter();
|
|
50
|
-
var renderGroup = function (group) { return (React__default.default.createElement(Optgroup, { className: optionGroupClassName, label: group.label, key: group.label, size: size }, group.options.map(function (option) { return renderOption(option, counter()); }))); };
|
|
50
|
+
var renderGroup = function (group) { return (React__default.default.createElement(Optgroup, { className: optionGroupClassName, label: group.label, key: group.label, size: size, options: group.options, selectedItems: selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.filter(function (item) { return group.options.includes(item); }), addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, search: search }, group.options.map(function (option) { return renderOption(option, counter()); }))); };
|
|
51
51
|
utils.useVisibleOptions(tslib.__assign(tslib.__assign({}, (!nativeScrollbar && { styleTargetRef: scrollbarRef })), { visibleOptions: visibleOptions, listRef: listRef, open: open, invalidate: options }));
|
|
52
52
|
if (options.length === 0 && !emptyPlaceholder && !header && !footer) {
|
|
53
53
|
return null;
|
|
@@ -23,7 +23,7 @@ require('./index.css');
|
|
|
23
23
|
|
|
24
24
|
var VirtualOptionsList = React.forwardRef(function (_a, ref) {
|
|
25
25
|
var _b;
|
|
26
|
-
var _c = _a.size, size = _c === void 0 ? 48 : _c, _d = _a.flatOptions, flatOptions = _d === void 0 ? [] : _d, _e = _a.highlightedIndex, highlightedIndex = _e === void 0 ? -1 : _e, optionGroupClassName = _a.optionGroupClassName, className = _a.className, getOptionProps = _a.getOptionProps, Option = _a.Option, open = _a.open, _f = _a.options, options = _f === void 0 ? [] : _f, _g = _a.Optgroup, Optgroup = _g === void 0 ? components_optgroup_Component.Optgroup : _g, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _h = _a.visibleOptions, visibleOptions = _h === void 0 ? consts.DEFAULT_VISIBLE_OPTIONS : _h, header = _a.header, footer = _a.footer, _j = _a.showFooter, showFooter = _j === void 0 ? true : _j, optionsListWidth = _a.optionsListWidth, onScroll = _a.onScroll, nativeScrollbarProp = _a.nativeScrollbar, setHighlightedIndex = _a.setHighlightedIndex;
|
|
26
|
+
var _c = _a.size, size = _c === void 0 ? 48 : _c, _d = _a.flatOptions, flatOptions = _d === void 0 ? [] : _d, _e = _a.highlightedIndex, highlightedIndex = _e === void 0 ? -1 : _e, optionGroupClassName = _a.optionGroupClassName, className = _a.className, getOptionProps = _a.getOptionProps, Option = _a.Option, open = _a.open, _f = _a.options, options = _f === void 0 ? [] : _f, _g = _a.Optgroup, Optgroup = _g === void 0 ? components_optgroup_Component.Optgroup : _g, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _h = _a.visibleOptions, visibleOptions = _h === void 0 ? consts.DEFAULT_VISIBLE_OPTIONS : _h, header = _a.header, footer = _a.footer, _j = _a.showFooter, showFooter = _j === void 0 ? true : _j, optionsListWidth = _a.optionsListWidth, onScroll = _a.onScroll, nativeScrollbarProp = _a.nativeScrollbar, setHighlightedIndex = _a.setHighlightedIndex, selectedItems = _a.selectedItems, addSelectedItem = _a.addSelectedItem, removeSelectedItem = _a.removeSelectedItem, search = _a.search;
|
|
27
27
|
var listRef = React.useRef(null);
|
|
28
28
|
var parentRef = React.useRef(null);
|
|
29
29
|
var scrollbarRef = React.useRef(null);
|
|
@@ -114,7 +114,9 @@ var VirtualOptionsList = React.forwardRef(function (_a, ref) {
|
|
|
114
114
|
_a)), style: {
|
|
115
115
|
transform: "translateY(".concat(virtualRow.start, "px)"),
|
|
116
116
|
} },
|
|
117
|
-
group && (React__default.default.createElement(Optgroup, { label: group.label, size: size, className: optionGroupClassName
|
|
117
|
+
group && (React__default.default.createElement(Optgroup, { label: group.label, size: size, className: optionGroupClassName, options: group.options, selectedItems: selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.filter(function (item) {
|
|
118
|
+
return group.options.includes(item);
|
|
119
|
+
}), addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, search: search })),
|
|
118
120
|
!utils.isGroup(option) && (React__default.default.createElement(Option, tslib.__assign({}, getOptionProps(option, virtualRow.index))))));
|
|
119
121
|
});
|
|
120
122
|
};
|
|
@@ -359,9 +359,9 @@ function (_a, ref) {
|
|
|
359
359
|
return null;
|
|
360
360
|
var listProps = optionsListProps;
|
|
361
361
|
return (React__default.default.createElement("div", tslib.__assign({}, menuProps, { ref: view === 'desktop' ? menuRef : undefined, className: cn__default.default(optionsListClassName, view === 'mobile' && mobileStyles__default.default.optionsListWrapper, view === 'desktop' && styles__default.default.optionsListWrapper) }),
|
|
362
|
-
React__default.default.createElement(OptionsList, tslib.__assign({}, listProps, { ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn__default.default((_a = {}, _a[mobileStyles__default.default.optionsList] = view === 'mobile', _a)), scrollbarClassName: cn__default.default((_b = {}, _b[mobileStyles__default.default.scrollbar] = view === 'mobile', _b)), 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: view === 'desktop' ? visibleOptions : 0, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn__default.default(optionGroupClassName, (_c = {},
|
|
362
|
+
React__default.default.createElement(OptionsList, tslib.__assign({}, listProps, { ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn__default.default((_a = {}, _a[mobileStyles__default.default.optionsList] = view === 'mobile', _a)), scrollbarClassName: cn__default.default((_b = {}, _b[mobileStyles__default.default.scrollbar] = view === 'mobile', _b)), optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, toggleMenu: toggleMenu, getOptionProps: getOptionProps, visibleOptions: view === 'desktop' ? visibleOptions : 0, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn__default.default(optionGroupClassName, (_c = {},
|
|
363
363
|
_c[mobileStyles__default.default.optionGroup] = view === 'mobile',
|
|
364
|
-
_c)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll })),
|
|
364
|
+
_c)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search })),
|
|
365
365
|
view === 'desktop' && React__default.default.createElement("div", { className: styles__default.default.optionsListBorder })));
|
|
366
366
|
};
|
|
367
367
|
var renderInPopover = function () {
|
|
@@ -26,7 +26,7 @@ var createCounter = function () {
|
|
|
26
26
|
};
|
|
27
27
|
var OptionsList = React.forwardRef(function (_a, ref) {
|
|
28
28
|
var _b, _c;
|
|
29
|
-
var _d = _a.size, size = _d === void 0 ? 48 : _d, className = _a.className, optionGroupClassName = _a.optionGroupClassName, scrollbarClassName = _a.scrollbarClassName, Option = _a.Option, getOptionProps = _a.getOptionProps, _e = _a.options, options = _e === void 0 ? [] : _e, _f = _a.Optgroup, Optgroup = _f === void 0 ? components_optgroup_Component.Optgroup : _f, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _g = _a.visibleOptions, visibleOptions = _g === void 0 ? consts.DEFAULT_VISIBLE_OPTIONS : _g, onScroll = _a.onScroll, open = _a.open, header = _a.header, footer = _a.footer, _h = _a.showFooter, showFooter = _h === void 0 ? true : _h, optionsListWidth = _a.optionsListWidth, nativeScrollbarProp = _a.nativeScrollbar, _j = _a.flatOptions, flatOptions = _j === void 0 ? [] : _j, setHighlightedIndex = _a.setHighlightedIndex;
|
|
29
|
+
var _d = _a.size, size = _d === void 0 ? 48 : _d, className = _a.className, optionGroupClassName = _a.optionGroupClassName, scrollbarClassName = _a.scrollbarClassName, Option = _a.Option, getOptionProps = _a.getOptionProps, _e = _a.options, options = _e === void 0 ? [] : _e, _f = _a.Optgroup, Optgroup = _f === void 0 ? components_optgroup_Component.Optgroup : _f, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _g = _a.visibleOptions, visibleOptions = _g === void 0 ? consts.DEFAULT_VISIBLE_OPTIONS : _g, onScroll = _a.onScroll, open = _a.open, header = _a.header, footer = _a.footer, _h = _a.showFooter, showFooter = _h === void 0 ? true : _h, optionsListWidth = _a.optionsListWidth, nativeScrollbarProp = _a.nativeScrollbar, _j = _a.flatOptions, flatOptions = _j === void 0 ? [] : _j, setHighlightedIndex = _a.setHighlightedIndex, selectedItems = _a.selectedItems, addSelectedItem = _a.addSelectedItem, removeSelectedItem = _a.removeSelectedItem, search = _a.search;
|
|
30
30
|
var _k = React.useState(true), scrollTop = _k[0], setScrollTop = _k[1];
|
|
31
31
|
var _l = React.useState(false), scrollBottom = _l[0], setScrollBottom = _l[1];
|
|
32
32
|
var query = '(max-width: 1023px)';
|
|
@@ -46,7 +46,7 @@ var OptionsList = React.forwardRef(function (_a, ref) {
|
|
|
46
46
|
var listRef = React.useRef(null);
|
|
47
47
|
var scrollbarRef = React.useRef(null);
|
|
48
48
|
var counter = createCounter();
|
|
49
|
-
var renderGroup = function (group) { return (React__default.default.createElement(Optgroup, { className: optionGroupClassName, label: group.label, key: group.label, size: size }, group.options.map(function (option) { return renderOption(option, counter()); }))); };
|
|
49
|
+
var renderGroup = function (group) { return (React__default.default.createElement(Optgroup, { className: optionGroupClassName, label: group.label, key: group.label, size: size, options: group.options, selectedItems: selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.filter(function (item) { return group.options.includes(item); }), addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, search: search }, group.options.map(function (option) { return renderOption(option, counter()); }))); };
|
|
50
50
|
utils.useVisibleOptions(tslib.__assign(tslib.__assign({}, (!nativeScrollbar && { styleTargetRef: scrollbarRef })), { visibleOptions: visibleOptions, listRef: listRef, open: open, invalidate: options }));
|
|
51
51
|
if (options.length === 0 && !emptyPlaceholder && !header && !footer) {
|
|
52
52
|
return null;
|
|
@@ -22,7 +22,7 @@ var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
|
|
|
22
22
|
|
|
23
23
|
var VirtualOptionsList = React.forwardRef(function (_a, ref) {
|
|
24
24
|
var _b;
|
|
25
|
-
var _c = _a.size, size = _c === void 0 ? 48 : _c, _d = _a.flatOptions, flatOptions = _d === void 0 ? [] : _d, _e = _a.highlightedIndex, highlightedIndex = _e === void 0 ? -1 : _e, optionGroupClassName = _a.optionGroupClassName, className = _a.className, getOptionProps = _a.getOptionProps, Option = _a.Option, open = _a.open, _f = _a.options, options = _f === void 0 ? [] : _f, _g = _a.Optgroup, Optgroup = _g === void 0 ? components_optgroup_Component.Optgroup : _g, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _h = _a.visibleOptions, visibleOptions = _h === void 0 ? consts.DEFAULT_VISIBLE_OPTIONS : _h, header = _a.header, footer = _a.footer, _j = _a.showFooter, showFooter = _j === void 0 ? true : _j, optionsListWidth = _a.optionsListWidth, onScroll = _a.onScroll, nativeScrollbarProp = _a.nativeScrollbar, setHighlightedIndex = _a.setHighlightedIndex;
|
|
25
|
+
var _c = _a.size, size = _c === void 0 ? 48 : _c, _d = _a.flatOptions, flatOptions = _d === void 0 ? [] : _d, _e = _a.highlightedIndex, highlightedIndex = _e === void 0 ? -1 : _e, optionGroupClassName = _a.optionGroupClassName, className = _a.className, getOptionProps = _a.getOptionProps, Option = _a.Option, open = _a.open, _f = _a.options, options = _f === void 0 ? [] : _f, _g = _a.Optgroup, Optgroup = _g === void 0 ? components_optgroup_Component.Optgroup : _g, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _h = _a.visibleOptions, visibleOptions = _h === void 0 ? consts.DEFAULT_VISIBLE_OPTIONS : _h, header = _a.header, footer = _a.footer, _j = _a.showFooter, showFooter = _j === void 0 ? true : _j, optionsListWidth = _a.optionsListWidth, onScroll = _a.onScroll, nativeScrollbarProp = _a.nativeScrollbar, setHighlightedIndex = _a.setHighlightedIndex, selectedItems = _a.selectedItems, addSelectedItem = _a.addSelectedItem, removeSelectedItem = _a.removeSelectedItem, search = _a.search;
|
|
26
26
|
var listRef = React.useRef(null);
|
|
27
27
|
var parentRef = React.useRef(null);
|
|
28
28
|
var scrollbarRef = React.useRef(null);
|
|
@@ -113,7 +113,9 @@ var VirtualOptionsList = React.forwardRef(function (_a, ref) {
|
|
|
113
113
|
_a)), style: {
|
|
114
114
|
transform: "translateY(".concat(virtualRow.start, "px)"),
|
|
115
115
|
} },
|
|
116
|
-
group && (React__default.default.createElement(Optgroup, { label: group.label, size: size, className: optionGroupClassName
|
|
116
|
+
group && (React__default.default.createElement(Optgroup, { label: group.label, size: size, className: optionGroupClassName, options: group.options, selectedItems: selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.filter(function (item) {
|
|
117
|
+
return group.options.includes(item);
|
|
118
|
+
}), addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, search: search })),
|
|
117
119
|
!utils.isGroup(option) && (React__default.default.createElement(Option, tslib.__assign({}, getOptionProps(option, virtualRow.index))))));
|
|
118
120
|
});
|
|
119
121
|
};
|
package/select/cssm/typings.d.ts
CHANGED
|
@@ -479,6 +479,18 @@ type OptionsListProps = {
|
|
|
479
479
|
* Указать индекс пункта для hover состояния
|
|
480
480
|
*/
|
|
481
481
|
setHighlightedIndex?: (index: number) => void;
|
|
482
|
+
/**
|
|
483
|
+
* Обработчик добавления в список выбранных вариантов
|
|
484
|
+
*/
|
|
485
|
+
addSelectedItem?: (item: OptionShape) => void;
|
|
486
|
+
/**
|
|
487
|
+
* Обработчик удаления из списка выбранных вариантов
|
|
488
|
+
*/
|
|
489
|
+
removeSelectedItem?: (item: OptionShape) => void;
|
|
490
|
+
/**
|
|
491
|
+
* Значение поиска
|
|
492
|
+
*/
|
|
493
|
+
search?: string;
|
|
482
494
|
};
|
|
483
495
|
type OptgroupProps = {
|
|
484
496
|
/**
|
|
@@ -498,6 +510,26 @@ type OptgroupProps = {
|
|
|
498
510
|
* Дочерние элементы
|
|
499
511
|
*/
|
|
500
512
|
children?: ReactNode;
|
|
513
|
+
/**
|
|
514
|
+
* Список вариантов выбора в группе
|
|
515
|
+
*/
|
|
516
|
+
options?: OptionShape[];
|
|
517
|
+
/**
|
|
518
|
+
* Список выбранных вариантов в группе
|
|
519
|
+
*/
|
|
520
|
+
selectedItems?: OptionShape[];
|
|
521
|
+
/**
|
|
522
|
+
* Обработчик добавления в список выбранных вариантов
|
|
523
|
+
*/
|
|
524
|
+
addSelectedItem?: (item: OptionShape) => void;
|
|
525
|
+
/**
|
|
526
|
+
* Обработчик удаления из списка выбранных вариантов
|
|
527
|
+
*/
|
|
528
|
+
removeSelectedItem?: (item: OptionShape) => void;
|
|
529
|
+
/**
|
|
530
|
+
* Значение поиска
|
|
531
|
+
*/
|
|
532
|
+
search?: string;
|
|
501
533
|
};
|
|
502
534
|
type OptionProps = {
|
|
503
535
|
/**
|
|
@@ -353,9 +353,9 @@ function (_a, ref) {
|
|
|
353
353
|
return null;
|
|
354
354
|
var listProps = optionsListProps;
|
|
355
355
|
return (React.createElement("div", __assign({}, menuProps, { ref: view === 'desktop' ? menuRef : undefined, className: cn(optionsListClassName, view === 'mobile' && mobileStyles.optionsListWrapper, view === 'desktop' && styles.optionsListWrapper) }),
|
|
356
|
-
React.createElement(OptionsList, __assign({}, listProps, { ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn((_a = {}, _a[mobileStyles.optionsList] = view === 'mobile', _a)), scrollbarClassName: cn((_b = {}, _b[mobileStyles.scrollbar] = view === 'mobile', _b)), 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: view === 'desktop' ? visibleOptions : 0, dataTestId: getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn(optionGroupClassName, (_c = {},
|
|
356
|
+
React.createElement(OptionsList, __assign({}, listProps, { ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn((_a = {}, _a[mobileStyles.optionsList] = view === 'mobile', _a)), scrollbarClassName: cn((_b = {}, _b[mobileStyles.scrollbar] = view === 'mobile', _b)), optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, toggleMenu: toggleMenu, getOptionProps: getOptionProps, visibleOptions: view === 'desktop' ? visibleOptions : 0, dataTestId: getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn(optionGroupClassName, (_c = {},
|
|
357
357
|
_c[mobileStyles.optionGroup] = view === 'mobile',
|
|
358
|
-
_c)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll })),
|
|
358
|
+
_c)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search })),
|
|
359
359
|
view === 'desktop' && React.createElement("div", { className: styles.optionsListBorder })));
|
|
360
360
|
};
|
|
361
361
|
var renderInPopover = function () {
|
|
@@ -19,7 +19,7 @@ var createCounter = function () {
|
|
|
19
19
|
};
|
|
20
20
|
var OptionsList = forwardRef(function (_a, ref) {
|
|
21
21
|
var _b, _c;
|
|
22
|
-
var _d = _a.size, size = _d === void 0 ? 48 : _d, className = _a.className, optionGroupClassName = _a.optionGroupClassName, scrollbarClassName = _a.scrollbarClassName, Option = _a.Option, getOptionProps = _a.getOptionProps, _e = _a.options, options = _e === void 0 ? [] : _e, _f = _a.Optgroup, Optgroup$1 = _f === void 0 ? Optgroup : _f, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _g = _a.visibleOptions, visibleOptions = _g === void 0 ? DEFAULT_VISIBLE_OPTIONS : _g, onScroll = _a.onScroll, open = _a.open, header = _a.header, footer = _a.footer, _h = _a.showFooter, showFooter = _h === void 0 ? true : _h, optionsListWidth = _a.optionsListWidth, nativeScrollbarProp = _a.nativeScrollbar, _j = _a.flatOptions, flatOptions = _j === void 0 ? [] : _j, setHighlightedIndex = _a.setHighlightedIndex;
|
|
22
|
+
var _d = _a.size, size = _d === void 0 ? 48 : _d, className = _a.className, optionGroupClassName = _a.optionGroupClassName, scrollbarClassName = _a.scrollbarClassName, Option = _a.Option, getOptionProps = _a.getOptionProps, _e = _a.options, options = _e === void 0 ? [] : _e, _f = _a.Optgroup, Optgroup$1 = _f === void 0 ? Optgroup : _f, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _g = _a.visibleOptions, visibleOptions = _g === void 0 ? DEFAULT_VISIBLE_OPTIONS : _g, onScroll = _a.onScroll, open = _a.open, header = _a.header, footer = _a.footer, _h = _a.showFooter, showFooter = _h === void 0 ? true : _h, optionsListWidth = _a.optionsListWidth, nativeScrollbarProp = _a.nativeScrollbar, _j = _a.flatOptions, flatOptions = _j === void 0 ? [] : _j, setHighlightedIndex = _a.setHighlightedIndex, selectedItems = _a.selectedItems, addSelectedItem = _a.addSelectedItem, removeSelectedItem = _a.removeSelectedItem, search = _a.search;
|
|
23
23
|
var _k = useState(true), scrollTop = _k[0], setScrollTop = _k[1];
|
|
24
24
|
var _l = useState(false), scrollBottom = _l[0], setScrollBottom = _l[1];
|
|
25
25
|
var query = '(max-width: 1023px)';
|
|
@@ -39,7 +39,7 @@ var OptionsList = forwardRef(function (_a, ref) {
|
|
|
39
39
|
var listRef = useRef(null);
|
|
40
40
|
var scrollbarRef = useRef(null);
|
|
41
41
|
var counter = createCounter();
|
|
42
|
-
var renderGroup = function (group) { return (React.createElement(Optgroup$1, { className: optionGroupClassName, label: group.label, key: group.label, size: size }, group.options.map(function (option) { return renderOption(option, counter()); }))); };
|
|
42
|
+
var renderGroup = function (group) { return (React.createElement(Optgroup$1, { className: optionGroupClassName, label: group.label, key: group.label, size: size, options: group.options, selectedItems: selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.filter(function (item) { return group.options.includes(item); }), addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, search: search }, group.options.map(function (option) { return renderOption(option, counter()); }))); };
|
|
43
43
|
useVisibleOptions(__assign(__assign({}, (!nativeScrollbar && { styleTargetRef: scrollbarRef })), { visibleOptions: visibleOptions, listRef: listRef, open: open, invalidate: options }));
|
|
44
44
|
if (options.length === 0 && !emptyPlaceholder && !header && !footer) {
|
|
45
45
|
return null;
|
|
@@ -15,7 +15,7 @@ require('./index.css');
|
|
|
15
15
|
|
|
16
16
|
var VirtualOptionsList = forwardRef(function (_a, ref) {
|
|
17
17
|
var _b;
|
|
18
|
-
var _c = _a.size, size = _c === void 0 ? 48 : _c, _d = _a.flatOptions, flatOptions = _d === void 0 ? [] : _d, _e = _a.highlightedIndex, highlightedIndex = _e === void 0 ? -1 : _e, optionGroupClassName = _a.optionGroupClassName, className = _a.className, getOptionProps = _a.getOptionProps, Option = _a.Option, open = _a.open, _f = _a.options, options = _f === void 0 ? [] : _f, _g = _a.Optgroup, Optgroup$1 = _g === void 0 ? Optgroup : _g, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _h = _a.visibleOptions, visibleOptions = _h === void 0 ? DEFAULT_VISIBLE_OPTIONS : _h, header = _a.header, footer = _a.footer, _j = _a.showFooter, showFooter = _j === void 0 ? true : _j, optionsListWidth = _a.optionsListWidth, onScroll = _a.onScroll, nativeScrollbarProp = _a.nativeScrollbar, setHighlightedIndex = _a.setHighlightedIndex;
|
|
18
|
+
var _c = _a.size, size = _c === void 0 ? 48 : _c, _d = _a.flatOptions, flatOptions = _d === void 0 ? [] : _d, _e = _a.highlightedIndex, highlightedIndex = _e === void 0 ? -1 : _e, optionGroupClassName = _a.optionGroupClassName, className = _a.className, getOptionProps = _a.getOptionProps, Option = _a.Option, open = _a.open, _f = _a.options, options = _f === void 0 ? [] : _f, _g = _a.Optgroup, Optgroup$1 = _g === void 0 ? Optgroup : _g, dataTestId = _a.dataTestId, emptyPlaceholder = _a.emptyPlaceholder, _h = _a.visibleOptions, visibleOptions = _h === void 0 ? DEFAULT_VISIBLE_OPTIONS : _h, header = _a.header, footer = _a.footer, _j = _a.showFooter, showFooter = _j === void 0 ? true : _j, optionsListWidth = _a.optionsListWidth, onScroll = _a.onScroll, nativeScrollbarProp = _a.nativeScrollbar, setHighlightedIndex = _a.setHighlightedIndex, selectedItems = _a.selectedItems, addSelectedItem = _a.addSelectedItem, removeSelectedItem = _a.removeSelectedItem, search = _a.search;
|
|
19
19
|
var listRef = useRef(null);
|
|
20
20
|
var parentRef = useRef(null);
|
|
21
21
|
var scrollbarRef = useRef(null);
|
|
@@ -106,7 +106,9 @@ var VirtualOptionsList = forwardRef(function (_a, ref) {
|
|
|
106
106
|
_a)), style: {
|
|
107
107
|
transform: "translateY(".concat(virtualRow.start, "px)"),
|
|
108
108
|
} },
|
|
109
|
-
group && (React.createElement(Optgroup$1, { label: group.label, size: size, className: optionGroupClassName
|
|
109
|
+
group && (React.createElement(Optgroup$1, { label: group.label, size: size, className: optionGroupClassName, options: group.options, selectedItems: selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.filter(function (item) {
|
|
110
|
+
return group.options.includes(item);
|
|
111
|
+
}), addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, search: search })),
|
|
110
112
|
!isGroup(option) && (React.createElement(Option, __assign({}, getOptionProps(option, virtualRow.index))))));
|
|
111
113
|
});
|
|
112
114
|
};
|
package/select/esm/typings.d.ts
CHANGED
|
@@ -479,6 +479,18 @@ type OptionsListProps = {
|
|
|
479
479
|
* Указать индекс пункта для hover состояния
|
|
480
480
|
*/
|
|
481
481
|
setHighlightedIndex?: (index: number) => void;
|
|
482
|
+
/**
|
|
483
|
+
* Обработчик добавления в список выбранных вариантов
|
|
484
|
+
*/
|
|
485
|
+
addSelectedItem?: (item: OptionShape) => void;
|
|
486
|
+
/**
|
|
487
|
+
* Обработчик удаления из списка выбранных вариантов
|
|
488
|
+
*/
|
|
489
|
+
removeSelectedItem?: (item: OptionShape) => void;
|
|
490
|
+
/**
|
|
491
|
+
* Значение поиска
|
|
492
|
+
*/
|
|
493
|
+
search?: string;
|
|
482
494
|
};
|
|
483
495
|
type OptgroupProps = {
|
|
484
496
|
/**
|
|
@@ -498,6 +510,26 @@ type OptgroupProps = {
|
|
|
498
510
|
* Дочерние элементы
|
|
499
511
|
*/
|
|
500
512
|
children?: ReactNode;
|
|
513
|
+
/**
|
|
514
|
+
* Список вариантов выбора в группе
|
|
515
|
+
*/
|
|
516
|
+
options?: OptionShape[];
|
|
517
|
+
/**
|
|
518
|
+
* Список выбранных вариантов в группе
|
|
519
|
+
*/
|
|
520
|
+
selectedItems?: OptionShape[];
|
|
521
|
+
/**
|
|
522
|
+
* Обработчик добавления в список выбранных вариантов
|
|
523
|
+
*/
|
|
524
|
+
addSelectedItem?: (item: OptionShape) => void;
|
|
525
|
+
/**
|
|
526
|
+
* Обработчик удаления из списка выбранных вариантов
|
|
527
|
+
*/
|
|
528
|
+
removeSelectedItem?: (item: OptionShape) => void;
|
|
529
|
+
/**
|
|
530
|
+
* Значение поиска
|
|
531
|
+
*/
|
|
532
|
+
search?: string;
|
|
501
533
|
};
|
|
502
534
|
type OptionProps = {
|
|
503
535
|
/**
|
|
@@ -348,9 +348,9 @@ const BaseSelect = forwardRef(
|
|
|
348
348
|
return null;
|
|
349
349
|
const listProps = optionsListProps;
|
|
350
350
|
return (React.createElement("div", { ...menuProps, ref: view === 'desktop' ? menuRef : undefined, className: cn(optionsListClassName, view === 'mobile' && mobileStyles.optionsListWrapper, view === 'desktop' && styles.optionsListWrapper) },
|
|
351
|
-
React.createElement(OptionsList, { ...listProps, ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn({ [mobileStyles.optionsList]: view === 'mobile' }), scrollbarClassName: cn({ [mobileStyles.scrollbar]: view === 'mobile' }), 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: view === 'desktop' ? visibleOptions : 0, dataTestId: getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn(optionGroupClassName, {
|
|
351
|
+
React.createElement(OptionsList, { ...listProps, ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn({ [mobileStyles.optionsList]: view === 'mobile' }), scrollbarClassName: cn({ [mobileStyles.scrollbar]: view === 'mobile' }), optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, toggleMenu: toggleMenu, getOptionProps: getOptionProps, visibleOptions: view === 'desktop' ? visibleOptions : 0, dataTestId: getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn(optionGroupClassName, {
|
|
352
352
|
[mobileStyles.optionGroup]: view === 'mobile',
|
|
353
|
-
}), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll }),
|
|
353
|
+
}), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search }),
|
|
354
354
|
view === 'desktop' && React.createElement("div", { className: styles.optionsListBorder })));
|
|
355
355
|
};
|
|
356
356
|
const renderInPopover = () => {
|
|
@@ -16,7 +16,7 @@ const createCounter = () => {
|
|
|
16
16
|
// eslint-disable-next-line no-plusplus
|
|
17
17
|
return () => count++;
|
|
18
18
|
};
|
|
19
|
-
const OptionsList = forwardRef(({ size = 48, className, optionGroupClassName, scrollbarClassName, Option, getOptionProps, options = [], Optgroup: Optgroup$1 = Optgroup, dataTestId, emptyPlaceholder, visibleOptions = DEFAULT_VISIBLE_OPTIONS, onScroll, open, header, footer, showFooter = true, optionsListWidth, nativeScrollbar: nativeScrollbarProp, flatOptions = [], setHighlightedIndex, }, ref) => {
|
|
19
|
+
const OptionsList = forwardRef(({ size = 48, className, optionGroupClassName, scrollbarClassName, Option, getOptionProps, options = [], Optgroup: Optgroup$1 = Optgroup, dataTestId, emptyPlaceholder, visibleOptions = DEFAULT_VISIBLE_OPTIONS, onScroll, open, header, footer, showFooter = true, optionsListWidth, nativeScrollbar: nativeScrollbarProp, flatOptions = [], setHighlightedIndex, selectedItems, addSelectedItem, removeSelectedItem, search, }, ref) => {
|
|
20
20
|
const [scrollTop, setScrollTop] = useState(true);
|
|
21
21
|
const [scrollBottom, setScrollBottom] = useState(false);
|
|
22
22
|
const query = '(max-width: 1023px)';
|
|
@@ -34,7 +34,7 @@ const OptionsList = forwardRef(({ size = 48, className, optionGroupClassName, sc
|
|
|
34
34
|
const listRef = useRef(null);
|
|
35
35
|
const scrollbarRef = useRef(null);
|
|
36
36
|
const counter = createCounter();
|
|
37
|
-
const renderGroup = (group) => (React.createElement(Optgroup$1, { className: optionGroupClassName, label: group.label, key: group.label, size: size }, group.options.map((option) => renderOption(option, counter()))));
|
|
37
|
+
const renderGroup = (group) => (React.createElement(Optgroup$1, { className: optionGroupClassName, label: group.label, key: group.label, size: size, options: group.options, selectedItems: selectedItems?.filter((item) => group.options.includes(item)), addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, search: search }, group.options.map((option) => renderOption(option, counter()))));
|
|
38
38
|
useVisibleOptions({
|
|
39
39
|
...(!nativeScrollbar && { styleTargetRef: scrollbarRef }),
|
|
40
40
|
visibleOptions,
|
|
@@ -12,7 +12,7 @@ import { Optgroup } from '../optgroup/Component.js';
|
|
|
12
12
|
const styles = {"virtualOptionsList":"select__virtualOptionsList_p60lz","virtualOptionsListHeader":"select__virtualOptionsListHeader_p60lz","virtualOptionsListFooter":"select__virtualOptionsListFooter_p60lz","withBorder":"select__withBorder_p60lz","scrollable":"select__scrollable_p60lz","inner":"select__inner_p60lz","virtualRow":"select__virtualRow_p60lz","highlighted":"select__highlighted_p60lz","emptyPlaceholder":"select__emptyPlaceholder_p60lz","size-64":"select__size-64_p60lz","size-72":"select__size-72_p60lz"};
|
|
13
13
|
require('./index.css');
|
|
14
14
|
|
|
15
|
-
const VirtualOptionsList = forwardRef(({ size = 48, flatOptions = [], highlightedIndex = -1, optionGroupClassName, className, getOptionProps, Option, open, options = [], Optgroup: Optgroup$1 = Optgroup, dataTestId, emptyPlaceholder, visibleOptions = DEFAULT_VISIBLE_OPTIONS, header, footer, showFooter = true, optionsListWidth, onScroll, nativeScrollbar: nativeScrollbarProp, setHighlightedIndex, }, ref) => {
|
|
15
|
+
const VirtualOptionsList = forwardRef(({ size = 48, flatOptions = [], highlightedIndex = -1, optionGroupClassName, className, getOptionProps, Option, open, options = [], Optgroup: Optgroup$1 = Optgroup, dataTestId, emptyPlaceholder, visibleOptions = DEFAULT_VISIBLE_OPTIONS, header, footer, showFooter = true, optionsListWidth, onScroll, nativeScrollbar: nativeScrollbarProp, setHighlightedIndex, selectedItems, addSelectedItem, removeSelectedItem, search, }, ref) => {
|
|
16
16
|
const listRef = useRef(null);
|
|
17
17
|
const parentRef = useRef(null);
|
|
18
18
|
const scrollbarRef = useRef(null);
|
|
@@ -99,7 +99,7 @@ const VirtualOptionsList = forwardRef(({ size = 48, flatOptions = [], highlighte
|
|
|
99
99
|
}), style: {
|
|
100
100
|
transform: `translateY(${virtualRow.start}px)`,
|
|
101
101
|
} },
|
|
102
|
-
group && (React.createElement(Optgroup$1, { label: group.label, size: size, className: optionGroupClassName })),
|
|
102
|
+
group && (React.createElement(Optgroup$1, { label: group.label, size: size, className: optionGroupClassName, options: group.options, selectedItems: selectedItems?.filter((item) => group.options.includes(item)), addSelectedItem: addSelectedItem, removeSelectedItem: removeSelectedItem, search: search })),
|
|
103
103
|
!isGroup(option) && (React.createElement(Option, { ...getOptionProps(option, virtualRow.index) }))));
|
|
104
104
|
});
|
|
105
105
|
const contentNodeProps = {
|