@hh.ru/magritte-ui-select 12.2.8 → 12.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Select.d.ts +7 -2
- package/Select.js +9 -6
- package/Select.js.map +1 -1
- package/SelectBottomSheet.js +1 -1
- package/SelectDrop.js +1 -1
- package/SelectEmptyHint.js +1 -1
- package/SelectError.js +1 -1
- package/SelectModal.js +1 -1
- package/SelectOption.js +1 -1
- package/index.css +45 -45
- package/package.json +20 -20
- package/types.d.ts +12 -9
- package/useSelectState.d.ts +2 -2
- package/useSelectState.js.map +1 -1
package/Select.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import { ReactElement } from 'react';
|
|
1
|
+
import { ReactElement, ForwardedRef } from 'react';
|
|
2
2
|
import { StaticDataFetcherItem } from '@hh.ru/magritte-common-data-provider';
|
|
3
3
|
import { SelectProps } from '@hh.ru/magritte-ui-select/types';
|
|
4
|
-
|
|
4
|
+
declare const Select: (<MultipleType extends boolean, DataType extends StaticDataFetcherItem>(props: SelectProps<MultipleType, DataType> & {
|
|
5
|
+
ref?: ForwardedRef<HTMLElement>;
|
|
6
|
+
}) => ReactElement | null) & {
|
|
7
|
+
displayName: string;
|
|
8
|
+
};
|
|
9
|
+
export { Select };
|
package/Select.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useRef, useState, useMemo, useLayoutEffect, useCallback } from 'react';
|
|
3
|
+
import { forwardRef, useRef, useState, useMemo, useLayoutEffect, useCallback } from 'react';
|
|
4
4
|
import { keyboardMatch, keyboardKeys, keyboardMatches, findNextFocusableElement } from '@hh.ru/magritte-common-keyboard';
|
|
5
5
|
import { useDisabled } from '@hh.ru/magritte-common-use-disabled';
|
|
6
6
|
import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
|
|
@@ -58,7 +58,7 @@ const DEFAULT_TRIGGER_PROPS = {
|
|
|
58
58
|
size: 'medium',
|
|
59
59
|
'data-qa': DEFAULT_DATA_QA,
|
|
60
60
|
};
|
|
61
|
-
const
|
|
61
|
+
const SelectComponent = ({ type, multiple, value: _value, maxSelectedOptions, loading, error, searchable: _searchable, bottomSheetHeight = 'full-screen', onChange: onChangeHandler, renderTrigger = SelectTriggerDefault, triggerProps = DEFAULT_TRIGGER_PROPS, renderMobileItem, renderDesktopItem, name, maxWidth, maxHeight = 460, useInitialValuesOnClearAction, renderAlertOnExitWithoutSaving, renderButtonsContainer, renderHeader, headerTitle: _headerTitle, clearButton, applyChangesButton, forceDropVisibleWithEmptyOptions, plain = false, widthEqualToActivator = true, renderContentBefore, onBlur, onFocus, onDropOpen, onDropClose, onBottomSheetClose, onBottomSheetOpen, onSearchSubmit, onApply, onClear, onSelectOption, pickerRef, dataProvider, emptyOptionsHint, emptyOptionsSearchHint, onOptionsChange, innerErrorTrls, optionDataQa, pickerDesktopType = 'drop', modalProps, dropWidth, }, ref) => {
|
|
62
62
|
const { isMobile } = useBreakpoint();
|
|
63
63
|
const inputRef = useRef(null);
|
|
64
64
|
const [searchInputState, setSearchInputState] = useState(SEARCH_INPUT_STATE);
|
|
@@ -66,6 +66,7 @@ const Select = ({ type, multiple, value: _value, maxSelectedOptions, loading, er
|
|
|
66
66
|
const dropRef = useRef(null);
|
|
67
67
|
const useDefaultTrigger = renderTrigger === SelectTriggerDefault;
|
|
68
68
|
const { activatorRef, optionsListRef, onOptionsListClose, toggleListVisibility, showOptions } = useSelectOptionsList(isMobile, pickerDesktopType);
|
|
69
|
+
const activatorRefCallback = useMultipleRefs(activatorRef, ref);
|
|
69
70
|
const prevVisibleRef = useRef(showOptions);
|
|
70
71
|
const hasChangesButton = multiple && Boolean(applyChangesButton);
|
|
71
72
|
const { values, onChange, clearSelectedValues, setInitialValues, setSelectedValues, setInitialValuesWithoutOnChange, initialValuesOnOpening, } = useSelectState(!!multiple, _value || [], showOptions, hasChangesButton, onChangeHandler, onSelectOption);
|
|
@@ -84,11 +85,11 @@ const Select = ({ type, multiple, value: _value, maxSelectedOptions, loading, er
|
|
|
84
85
|
const showedByFocus = useRef(false);
|
|
85
86
|
const isLimitExceeded = maxSelectedOptions !== undefined && Array.isArray(values) && values.length >= maxSelectedOptions;
|
|
86
87
|
// часть свойств тригера влияет на поведение дефолтного input search
|
|
87
|
-
const { size,
|
|
88
|
+
const { size, label: triggerLabel, disabled } = triggerProps;
|
|
88
89
|
const forceDisabled = useDisabled();
|
|
89
90
|
const isComponentDisabled = disabled || forceDisabled;
|
|
90
91
|
const sizeProp = size === 'large' ? { size: 'large' } : { size: 'medium' };
|
|
91
|
-
const inputWrapperStyles =
|
|
92
|
+
const inputWrapperStyles = { maxWidth: activatorRef.current?.offsetWidth };
|
|
92
93
|
const searchable = _searchable && (size === 'large' || size === 'medium');
|
|
93
94
|
const dataQa = triggerProps?.['data-qa'] || DEFAULT_DATA_QA;
|
|
94
95
|
// селект без поиска (переключаем фокус и отправляем blur)
|
|
@@ -194,7 +195,7 @@ const Select = ({ type, multiple, value: _value, maxSelectedOptions, loading, er
|
|
|
194
195
|
toggleListVisibility();
|
|
195
196
|
},
|
|
196
197
|
onClear: () => clearSelectedValues(),
|
|
197
|
-
ref:
|
|
198
|
+
ref: activatorRefCallback,
|
|
198
199
|
onKeyDown: handleKeyDown,
|
|
199
200
|
onBlur: () => {
|
|
200
201
|
setForcedState(null);
|
|
@@ -221,7 +222,7 @@ const Select = ({ type, multiple, value: _value, maxSelectedOptions, loading, er
|
|
|
221
222
|
optionsCount: optionList.length,
|
|
222
223
|
...triggerProps,
|
|
223
224
|
disabled: isComponentDisabled,
|
|
224
|
-
}), searchInputState.useSearchInput && (jsx("div", { style: inputWrapperStyles, children: jsx(BaseInput, { ...sizeProp, ref: inputRef, wrapperRef:
|
|
225
|
+
}), searchInputState.useSearchInput && (jsx("div", { style: inputWrapperStyles, children: jsx(BaseInput, { ...sizeProp, ref: inputRef, wrapperRef: activatorRefCallback, value: searchValue, onChange: setSearchValue, onKeyDown: handleKeyDown, onFocus: () => {
|
|
225
226
|
setForcedState('focus');
|
|
226
227
|
}, onBlur: () => {
|
|
227
228
|
setForcedState(null);
|
|
@@ -230,6 +231,8 @@ const Select = ({ type, multiple, value: _value, maxSelectedOptions, loading, er
|
|
|
230
231
|
}
|
|
231
232
|
}, "data-qa": "magritte-select-activator-input", placeholder: selectedLabels.length > 0 ? selectedLabels.join(', ') : triggerLabel, autoComplete: "off" }) })), isMobile && (jsx(SelectBottomSheet, { applyChangesButton: applyChangesButton, clearButton: clearButton, clearSelectedValues: clearSelectedValues, error: error, height: searchable || Boolean(error) || loading ? 'full-screen' : bottomSheetHeight, visible: Boolean(showOptions || internalLoading), value: values, isLimitExceeded: isLimitExceeded, name: name, multiple: multiple, type: type, loading: loading || internalLoading, searchable: _searchable, useInitialValuesOnClearAction: useInitialValuesOnClearAction, initialValuesOnOpening: initialValuesOnOpening, renderItem: renderMobileItem, renderAlertOnExitWithoutSaving: renderAlertOnExitWithoutSaving, renderButtonsContainer: renderButtonsContainer, renderHeader: renderHeader, headerTitle: _headerTitle || triggerLabel, optionList: optionList, optionsListRef: optionsListRefCallback, onChange: onChange, onClose: onOptionsListClose, searchValue: searchValue, setSearchValue: setSearchValue, setInitialValues: setInitialValues, setSelectedValues: setSelectedValues, onBottomSheetClose: onBottomSheetClose, onBottomSheetOpen: onBottomSheetOpen, onSearchSubmit: onSearchSubmit, onApply: onApply, onClear: onClear, emptyOptionsHint: emptyOptionsHint, emptyOptionsSearchHint: emptyOptionsSearchHint, searchInProgress: searchInProgress, internalError: internalError, reload: reload, innerErrorTrls: innerErrorTrls, optionDataQa: optionDataQa })), !isMobile && (jsxs(Fragment, { children: [pickerDesktopType === 'drop' && (jsx(SelectDrop, { activatorRef: activatorRef, applyChangesButton: applyChangesButton, clearButton: clearButton, clearSelectedValues: clearSelectedValues, isLimitExceeded: isLimitExceeded, name: name, multiple: multiple, maxWidth: maxWidth, type: type, loading: loading || internalLoading, useInitialValuesOnClearAction: useInitialValuesOnClearAction, onClose: onOptionsListClose, renderItem: renderDesktopItem, renderButtonsContainer: renderButtonsContainer, plain: plain, optionList: optionList, optionsListRef: optionsListRefCallback, value: values, onChange: onChange, searchValue: searchValue, searchable: searchable, forceDropVisibleWithEmptyOptions: forceDropVisibleWithEmptyOptions || internalLoading, setSearchValue: setSearchValue, setInitialValues: setInitialValues, visible: !error && (showOptions || internalLoading), widthEqualToActivator: widthEqualToActivator, renderContentBefore: renderContentBefore, setForcedState: setForcedState, setSelectedValues: setSelectedValues, maxHeight: maxHeight, onDropOpen: onDropOpen, onDropClose: onDropClose, onApply: onApply, onClear: onClear, emptyOptionsHint: emptyOptionsHint, emptyOptionsSearchHint: emptyOptionsSearchHint, searchInProgress: searchInProgress, internalError: internalError, reload: reload, innerErrorTrls: innerErrorTrls, optionDataQa: optionDataQa, dropWidth: dropWidth })), pickerDesktopType === 'modal' && (jsx(SelectModal, { ...modalProps, applyChangesButton: applyChangesButton, clearButton: clearButton, clearSelectedValues: clearSelectedValues, isLimitExceeded: isLimitExceeded, name: name, multiple: multiple, type: type, loading: loading || internalLoading, useInitialValuesOnClearAction: useInitialValuesOnClearAction, onClose: onOptionsListClose, renderItem: renderDesktopItem, renderButtonsContainer: renderButtonsContainer, plain: plain, optionList: optionList, optionsListRef: optionsListRefCallback, value: values, onChange: onChange, searchValue: searchValue, searchable: searchable, setSearchValue: setSearchValue, setInitialValues: setInitialValues, visible: Boolean(showOptions || internalLoading), setForcedState: setForcedState, setSelectedValues: setSelectedValues, onApply: onApply, onClear: onClear, emptyOptionsHint: emptyOptionsHint, emptyOptionsSearchHint: emptyOptionsSearchHint, searchInProgress: searchInProgress, internalError: internalError, reload: reload, innerErrorTrls: innerErrorTrls, optionDataQa: optionDataQa, renderAlertOnExitWithoutSaving: renderAlertOnExitWithoutSaving, initialValuesOnOpening: initialValuesOnOpening }))] }))] }));
|
|
232
233
|
};
|
|
234
|
+
const Select = forwardRef(SelectComponent);
|
|
235
|
+
Select.displayName = 'Select';
|
|
233
236
|
|
|
234
237
|
export { Select };
|
|
235
238
|
//# sourceMappingURL=Select.js.map
|
package/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../src/Select.tsx"],"sourcesContent":["import {\n ReactElement,\n useState,\n useRef,\n useLayoutEffect,\n useCallback,\n KeyboardEventHandler,\n SyntheticEvent,\n useMemo,\n} from 'react';\n\nimport { StaticDataFetcherItem } from '@hh.ru/magritte-common-data-provider';\nimport {\n findNextFocusableElement,\n keyboardKeys,\n keyboardMatch,\n keyboardMatches,\n} from '@hh.ru/magritte-common-keyboard';\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { BaseInput } from '@hh.ru/magritte-ui-input/BaseInput';\nimport { SelectBottomSheet } from '@hh.ru/magritte-ui-select/SelectBottomSheet';\nimport { SelectDrop } from '@hh.ru/magritte-ui-select/SelectDrop';\nimport { SelectModal } from '@hh.ru/magritte-ui-select/SelectModal';\nimport {\n SelectProps,\n TriggerPropsWithRef,\n FocusStateType,\n SetSearchValue,\n OptionsCount,\n TriggerExternalProps,\n} from '@hh.ru/magritte-ui-select/types';\nimport { useSelectOptionsList } from '@hh.ru/magritte-ui-select/useSelectOptionsList';\nimport { useSelectSearch } from '@hh.ru/magritte-ui-select/useSelectSearch';\nimport { useSelectState } from '@hh.ru/magritte-ui-select/useSelectState';\nimport { Trigger } from '@hh.ru/magritte-ui-trigger';\n\nconst SelectTriggerDefault = (triggerProps: TriggerPropsWithRef): ReactElement => {\n return <Trigger {...triggerProps} />;\n};\n\nconst focusOptionsList = (event: SyntheticEvent, drop: HTMLElement | null | undefined, direction: 'up' | 'down') => {\n if (drop) {\n const nextFocusableElement = findNextFocusableElement(drop, null, direction, 'list');\n if (nextFocusableElement !== null) {\n event.preventDefault();\n nextFocusableElement.focus();\n }\n }\n};\n\ninterface SearchInputState {\n useSearchInput: boolean;\n emitEvents: boolean;\n}\n\nconst SEARCH_INPUT_STATE: SearchInputState = {\n useSearchInput: false,\n emitEvents: false,\n};\n\nconst DEFAULT_DATA_QA = 'magritte-select-activator';\nconst DEFAULT_TRIGGER_PROPS = {\n size: 'medium',\n 'data-qa': DEFAULT_DATA_QA,\n} as TriggerExternalProps;\n\nexport const Select = <MultipleType extends boolean, DataType extends StaticDataFetcherItem>({\n type,\n multiple,\n value: _value,\n maxSelectedOptions,\n loading,\n error,\n searchable: _searchable,\n bottomSheetHeight = 'full-screen',\n onChange: onChangeHandler,\n renderTrigger = SelectTriggerDefault,\n triggerProps = DEFAULT_TRIGGER_PROPS,\n renderMobileItem,\n renderDesktopItem,\n name,\n maxWidth,\n maxHeight = 460,\n useInitialValuesOnClearAction,\n renderAlertOnExitWithoutSaving,\n renderButtonsContainer,\n renderHeader,\n headerTitle: _headerTitle,\n clearButton,\n applyChangesButton,\n forceDropVisibleWithEmptyOptions,\n plain = false,\n widthEqualToActivator = true,\n renderContentBefore,\n onBlur,\n onFocus,\n onDropOpen,\n onDropClose,\n onBottomSheetClose,\n onBottomSheetOpen,\n onSearchSubmit,\n onApply,\n onClear,\n onSelectOption,\n pickerRef,\n dataProvider,\n emptyOptionsHint,\n emptyOptionsSearchHint,\n onOptionsChange,\n innerErrorTrls,\n optionDataQa,\n pickerDesktopType = 'drop',\n modalProps,\n dropWidth,\n}: SelectProps<MultipleType, DataType>): ReactElement => {\n const { isMobile } = useBreakpoint();\n const inputRef = useRef<HTMLInputElement>(null);\n const [searchInputState, setSearchInputState] = useState<SearchInputState>(SEARCH_INPUT_STATE);\n const [forcedState, setForcedState] = useState<FocusStateType>(null);\n const dropRef = useRef<HTMLDivElement>(null);\n const useDefaultTrigger = renderTrigger === SelectTriggerDefault;\n\n const { activatorRef, optionsListRef, onOptionsListClose, toggleListVisibility, showOptions } =\n useSelectOptionsList(isMobile, pickerDesktopType);\n const prevVisibleRef = useRef<boolean>(showOptions);\n const hasChangesButton = multiple && Boolean(applyChangesButton);\n const {\n values,\n onChange,\n clearSelectedValues,\n setInitialValues,\n setSelectedValues,\n setInitialValuesWithoutOnChange,\n initialValuesOnOpening,\n } = useSelectState<DataType, MultipleType>(\n !!multiple,\n _value || [],\n showOptions,\n hasChangesButton,\n onChangeHandler,\n onSelectOption\n );\n const valuesArray = useMemo(\n // eslint-disable-next-line no-nested-ternary\n () => (Array.isArray(values) ? values : values ? ([values] as DataType[]) : []),\n [values]\n );\n const { optionList, internalLoading, searchValue, setSearchValue, searchInProgress, reload, internalError } =\n useSelectSearch<DataType>(showOptions, valuesArray, dataProvider, onOptionsChange);\n\n const selectedLabels = useMemo(\n () =>\n // eslint-disable-next-line no-nested-ternary\n Array.isArray(_value)\n ? _value.map((item) => item.text ?? item.value)\n : _value\n ? [_value?.text ?? _value.value]\n : [],\n [_value]\n );\n\n const optionsListRefCallback = useMultipleRefs(optionsListRef, dropRef, pickerRef);\n const showedByFocus = useRef<boolean>(false);\n const isLimitExceeded =\n maxSelectedOptions !== undefined && Array.isArray(values) && values.length >= maxSelectedOptions;\n\n // часть свойств тригера влияет на поведение дефолтного input search\n const { size, stretched, label: triggerLabel, disabled } = triggerProps;\n const forceDisabled = useDisabled();\n const isComponentDisabled = disabled || forceDisabled;\n const sizeProp = size === 'large' ? ({ size: 'large' } as const) : ({ size: 'medium' } as const);\n const inputWrapperStyles = stretched ? { with: '100%' } : { maxWidth: activatorRef.current?.offsetWidth };\n const searchable = _searchable && (size === 'large' || size === 'medium');\n const dataQa = triggerProps?.['data-qa'] || DEFAULT_DATA_QA;\n\n // селект без поиска (переключаем фокус и отправляем blur)\n useLayoutEffect(() => {\n if (searchable && !isMobile) {\n return;\n }\n if (!showOptions && prevVisibleRef.current) {\n setInitialValuesWithoutOnChange();\n if (forcedState === 'focus') {\n activatorRef.current?.focus();\n setForcedState?.(null);\n showedByFocus.current = false;\n }\n }\n if (!forcedState && !showOptions && prevVisibleRef.current) {\n onBlur?.();\n }\n prevVisibleRef.current = showOptions;\n }, [activatorRef, forcedState, isMobile, onBlur, searchable, setInitialValuesWithoutOnChange, showOptions]);\n\n // селект с поиском (нужно подменить контрол)\n useLayoutEffect(() => {\n if (!searchable || isMobile || pickerDesktopType === 'modal') {\n return;\n }\n if (forcedState === 'focus' || forcedState === 'focusAndSelect') {\n setSearchInputState({\n useSearchInput: useDefaultTrigger,\n emitEvents: true,\n });\n }\n }, [forcedState, isMobile, searchable, useDefaultTrigger, pickerDesktopType]);\n\n // триггер подменяться на input (тут пачка логики + blur)\n useLayoutEffect(() => {\n if (!searchInputState.emitEvents) {\n return;\n }\n // немного магипуляций, если тригер дефотный\n if (searchInputState.useSearchInput) {\n if (!inputRef.current) {\n return;\n }\n if (forcedState === 'focus') {\n inputRef.current.focus();\n }\n // например во время выбора опции, нужно выбрать текст\n if (forcedState === 'focusAndSelect') {\n inputRef.current?.focus();\n inputRef.current?.select();\n }\n }\n if (!showOptions && prevVisibleRef.current) {\n setInitialValuesWithoutOnChange();\n }\n if (!forcedState && !showOptions) {\n setSearchInputState({\n useSearchInput: false,\n emitEvents: false,\n });\n if (prevVisibleRef.current) {\n onBlur?.();\n }\n }\n prevVisibleRef.current = showOptions;\n }, [forcedState, onBlur, setForcedState, searchInputState, showOptions, setInitialValuesWithoutOnChange]);\n\n const handleKeyDown = useCallback<KeyboardEventHandler>(\n (event) => {\n if (showOptions && keyboardMatch(event.nativeEvent, keyboardKeys.Escape)) {\n showedByFocus.current = false;\n setForcedState('focus');\n\n toggleListVisibility();\n return;\n }\n\n // движение по списку опций\n if (showOptions && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowUp)) {\n focusOptionsList(event, dropRef?.current, 'up');\n return;\n }\n\n if (showOptions && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowDown)) {\n focusOptionsList(event, dropRef?.current, 'down');\n return;\n }\n\n // после закрытия пользователь решил что-то поделать опять\n if (\n !showOptions &&\n !keyboardMatches(event.nativeEvent, [keyboardKeys.Tab, keyboardKeys.Escape, keyboardKeys.Space])\n ) {\n toggleListVisibility();\n }\n },\n [showOptions, toggleListVisibility]\n );\n\n return (\n <>\n {!searchInputState.useSearchInput &&\n renderTrigger({\n values: selectedLabels,\n expanded: showOptions,\n toggleExpanded: toggleListVisibility,\n onChange: () => {\n if (isComponentDisabled) {\n return;\n }\n // открываем по фокусу, закрываем по клику\n // повторно открываем по клику (события фокуса уже не будет)\n if (showedByFocus.current) {\n showedByFocus.current = false;\n return;\n }\n toggleListVisibility();\n },\n onClear: () => clearSelectedValues(),\n ref: activatorRef,\n onKeyDown: handleKeyDown,\n onBlur: () => {\n setForcedState(null);\n if (showOptions && optionList.length === 0 && !emptyOptionsHint) {\n toggleListVisibility();\n }\n if (!showOptions && forcedState === null) {\n onBlur?.();\n }\n },\n onFocus: () => {\n if (isComponentDisabled || showOptions) {\n return;\n }\n if (!showOptions && forcedState !== 'focus' && forcedState !== 'focusAndSelect') {\n onFocus?.();\n setForcedState('focus');\n\n toggleListVisibility();\n }\n showedByFocus.current = true;\n },\n 'data-qa': dataQa,\n setSearchValue,\n optionsCount: optionList.length,\n ...triggerProps,\n disabled: isComponentDisabled,\n } as TriggerPropsWithRef & SetSearchValue & OptionsCount)}\n {searchInputState.useSearchInput && (\n <div style={inputWrapperStyles}>\n <BaseInput\n {...sizeProp}\n ref={inputRef}\n wrapperRef={activatorRef}\n value={searchValue}\n onChange={setSearchValue}\n onKeyDown={handleKeyDown}\n onFocus={() => {\n setForcedState('focus');\n }}\n onBlur={() => {\n setForcedState(null);\n if (showOptions && optionList.length === 0 && !emptyOptionsHint) {\n toggleListVisibility();\n }\n }}\n data-qa=\"magritte-select-activator-input\"\n placeholder={selectedLabels.length > 0 ? selectedLabels.join(', ') : triggerLabel}\n autoComplete=\"off\"\n />\n </div>\n )}\n {isMobile && (\n <SelectBottomSheet\n applyChangesButton={applyChangesButton}\n clearButton={clearButton}\n clearSelectedValues={clearSelectedValues}\n error={error}\n height={searchable || Boolean(error) || loading ? 'full-screen' : bottomSheetHeight}\n visible={Boolean(showOptions || internalLoading)}\n value={values}\n isLimitExceeded={isLimitExceeded}\n name={name}\n multiple={multiple}\n type={type}\n loading={loading || internalLoading}\n searchable={_searchable}\n useInitialValuesOnClearAction={useInitialValuesOnClearAction}\n initialValuesOnOpening={initialValuesOnOpening}\n renderItem={renderMobileItem}\n renderAlertOnExitWithoutSaving={renderAlertOnExitWithoutSaving}\n renderButtonsContainer={renderButtonsContainer}\n renderHeader={renderHeader}\n headerTitle={_headerTitle || triggerLabel}\n optionList={optionList}\n optionsListRef={optionsListRefCallback}\n onChange={onChange}\n onClose={onOptionsListClose}\n searchValue={searchValue}\n setSearchValue={setSearchValue}\n setInitialValues={setInitialValues}\n setSelectedValues={setSelectedValues}\n onBottomSheetClose={onBottomSheetClose}\n onBottomSheetOpen={onBottomSheetOpen}\n onSearchSubmit={onSearchSubmit}\n onApply={onApply}\n onClear={onClear}\n emptyOptionsHint={emptyOptionsHint}\n emptyOptionsSearchHint={emptyOptionsSearchHint}\n searchInProgress={searchInProgress}\n internalError={internalError}\n reload={reload}\n innerErrorTrls={innerErrorTrls}\n optionDataQa={optionDataQa}\n />\n )}\n {!isMobile && (\n <>\n {pickerDesktopType === 'drop' && (\n <SelectDrop\n activatorRef={activatorRef}\n applyChangesButton={applyChangesButton}\n clearButton={clearButton}\n clearSelectedValues={clearSelectedValues}\n isLimitExceeded={isLimitExceeded}\n name={name}\n multiple={multiple}\n maxWidth={maxWidth}\n type={type}\n loading={loading || internalLoading}\n useInitialValuesOnClearAction={useInitialValuesOnClearAction}\n onClose={onOptionsListClose}\n renderItem={renderDesktopItem}\n renderButtonsContainer={renderButtonsContainer}\n plain={plain}\n optionList={optionList}\n optionsListRef={optionsListRefCallback}\n value={values}\n onChange={onChange}\n searchValue={searchValue}\n searchable={searchable}\n forceDropVisibleWithEmptyOptions={forceDropVisibleWithEmptyOptions || internalLoading}\n setSearchValue={setSearchValue}\n setInitialValues={setInitialValues}\n visible={!error && (showOptions || internalLoading)}\n widthEqualToActivator={widthEqualToActivator}\n renderContentBefore={renderContentBefore}\n setForcedState={setForcedState}\n setSelectedValues={setSelectedValues}\n maxHeight={maxHeight}\n onDropOpen={onDropOpen}\n onDropClose={onDropClose}\n onApply={onApply}\n onClear={onClear}\n emptyOptionsHint={emptyOptionsHint}\n emptyOptionsSearchHint={emptyOptionsSearchHint}\n searchInProgress={searchInProgress}\n internalError={internalError}\n reload={reload}\n innerErrorTrls={innerErrorTrls}\n optionDataQa={optionDataQa}\n dropWidth={dropWidth}\n />\n )}\n {pickerDesktopType === 'modal' && (\n <SelectModal\n {...modalProps}\n applyChangesButton={applyChangesButton}\n clearButton={clearButton}\n clearSelectedValues={clearSelectedValues}\n isLimitExceeded={isLimitExceeded}\n name={name}\n multiple={multiple}\n type={type}\n loading={loading || internalLoading}\n useInitialValuesOnClearAction={useInitialValuesOnClearAction}\n onClose={onOptionsListClose}\n renderItem={renderDesktopItem}\n renderButtonsContainer={renderButtonsContainer}\n plain={plain}\n optionList={optionList}\n optionsListRef={optionsListRefCallback}\n value={values}\n onChange={onChange}\n searchValue={searchValue}\n searchable={searchable}\n setSearchValue={setSearchValue}\n setInitialValues={setInitialValues}\n visible={Boolean(showOptions || internalLoading)}\n setForcedState={setForcedState}\n setSelectedValues={setSelectedValues}\n onApply={onApply}\n onClear={onClear}\n emptyOptionsHint={emptyOptionsHint}\n emptyOptionsSearchHint={emptyOptionsSearchHint}\n searchInProgress={searchInProgress}\n internalError={internalError}\n reload={reload}\n innerErrorTrls={innerErrorTrls}\n optionDataQa={optionDataQa}\n renderAlertOnExitWithoutSaving={renderAlertOnExitWithoutSaving}\n initialValuesOnOpening={initialValuesOnOpening}\n />\n )}\n </>\n )}\n </>\n );\n};\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../src/Select.tsx"],"sourcesContent":["import {\n ReactElement,\n useState,\n useRef,\n useLayoutEffect,\n useCallback,\n KeyboardEventHandler,\n SyntheticEvent,\n useMemo,\n forwardRef,\n ForwardedRef,\n} from 'react';\n\nimport { StaticDataFetcherItem } from '@hh.ru/magritte-common-data-provider';\nimport {\n findNextFocusableElement,\n keyboardKeys,\n keyboardMatch,\n keyboardMatches,\n} from '@hh.ru/magritte-common-keyboard';\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { BaseInput } from '@hh.ru/magritte-ui-input/BaseInput';\nimport { SelectBottomSheet } from '@hh.ru/magritte-ui-select/SelectBottomSheet';\nimport { SelectDrop } from '@hh.ru/magritte-ui-select/SelectDrop';\nimport { SelectModal } from '@hh.ru/magritte-ui-select/SelectModal';\nimport {\n SelectProps,\n TriggerPropsWithRef,\n FocusStateType,\n SetSearchValue,\n OptionsCount,\n TriggerExternalProps,\n} from '@hh.ru/magritte-ui-select/types';\nimport { useSelectOptionsList } from '@hh.ru/magritte-ui-select/useSelectOptionsList';\nimport { useSelectSearch } from '@hh.ru/magritte-ui-select/useSelectSearch';\nimport { useSelectState } from '@hh.ru/magritte-ui-select/useSelectState';\nimport { Trigger } from '@hh.ru/magritte-ui-trigger';\n\nconst SelectTriggerDefault = (triggerProps: TriggerPropsWithRef): ReactElement => {\n return <Trigger {...triggerProps} />;\n};\n\nconst focusOptionsList = (event: SyntheticEvent, drop: HTMLElement | null | undefined, direction: 'up' | 'down') => {\n if (drop) {\n const nextFocusableElement = findNextFocusableElement(drop, null, direction, 'list');\n if (nextFocusableElement !== null) {\n event.preventDefault();\n nextFocusableElement.focus();\n }\n }\n};\n\ninterface SearchInputState {\n useSearchInput: boolean;\n emitEvents: boolean;\n}\n\nconst SEARCH_INPUT_STATE: SearchInputState = {\n useSearchInput: false,\n emitEvents: false,\n};\n\nconst DEFAULT_DATA_QA = 'magritte-select-activator';\nconst DEFAULT_TRIGGER_PROPS = {\n size: 'medium',\n 'data-qa': DEFAULT_DATA_QA,\n} as TriggerExternalProps;\n\nconst SelectComponent = <MultipleType extends boolean, DataType extends StaticDataFetcherItem>(\n {\n type,\n multiple,\n value: _value,\n maxSelectedOptions,\n loading,\n error,\n searchable: _searchable,\n bottomSheetHeight = 'full-screen',\n onChange: onChangeHandler,\n renderTrigger = SelectTriggerDefault,\n triggerProps = DEFAULT_TRIGGER_PROPS,\n renderMobileItem,\n renderDesktopItem,\n name,\n maxWidth,\n maxHeight = 460,\n useInitialValuesOnClearAction,\n renderAlertOnExitWithoutSaving,\n renderButtonsContainer,\n renderHeader,\n headerTitle: _headerTitle,\n clearButton,\n applyChangesButton,\n forceDropVisibleWithEmptyOptions,\n plain = false,\n widthEqualToActivator = true,\n renderContentBefore,\n onBlur,\n onFocus,\n onDropOpen,\n onDropClose,\n onBottomSheetClose,\n onBottomSheetOpen,\n onSearchSubmit,\n onApply,\n onClear,\n onSelectOption,\n pickerRef,\n dataProvider,\n emptyOptionsHint,\n emptyOptionsSearchHint,\n onOptionsChange,\n innerErrorTrls,\n optionDataQa,\n pickerDesktopType = 'drop',\n modalProps,\n dropWidth,\n }: SelectProps<MultipleType, DataType>,\n ref: ForwardedRef<HTMLElement>\n): ReactElement => {\n const { isMobile } = useBreakpoint();\n const inputRef = useRef<HTMLInputElement>(null);\n const [searchInputState, setSearchInputState] = useState<SearchInputState>(SEARCH_INPUT_STATE);\n const [forcedState, setForcedState] = useState<FocusStateType>(null);\n const dropRef = useRef<HTMLDivElement>(null);\n const useDefaultTrigger = renderTrigger === SelectTriggerDefault;\n\n const { activatorRef, optionsListRef, onOptionsListClose, toggleListVisibility, showOptions } =\n useSelectOptionsList(isMobile, pickerDesktopType);\n const activatorRefCallback = useMultipleRefs(activatorRef, ref);\n const prevVisibleRef = useRef<boolean>(showOptions);\n const hasChangesButton = multiple && Boolean(applyChangesButton);\n const {\n values,\n onChange,\n clearSelectedValues,\n setInitialValues,\n setSelectedValues,\n setInitialValuesWithoutOnChange,\n initialValuesOnOpening,\n } = useSelectState<DataType, MultipleType>(\n !!multiple,\n _value || [],\n showOptions,\n hasChangesButton,\n onChangeHandler,\n onSelectOption\n );\n const valuesArray = useMemo(\n // eslint-disable-next-line no-nested-ternary\n () => (Array.isArray(values) ? values : values ? ([values] as DataType[]) : []),\n [values]\n );\n const { optionList, internalLoading, searchValue, setSearchValue, searchInProgress, reload, internalError } =\n useSelectSearch<DataType>(showOptions, valuesArray, dataProvider, onOptionsChange);\n\n const selectedLabels = useMemo(\n () =>\n // eslint-disable-next-line no-nested-ternary\n Array.isArray(_value)\n ? _value.map((item) => item.text ?? item.value)\n : _value\n ? [_value?.text ?? _value.value]\n : [],\n [_value]\n );\n\n const optionsListRefCallback = useMultipleRefs(optionsListRef, dropRef, pickerRef);\n const showedByFocus = useRef<boolean>(false);\n const isLimitExceeded =\n maxSelectedOptions !== undefined && Array.isArray(values) && values.length >= maxSelectedOptions;\n\n // часть свойств тригера влияет на поведение дефолтного input search\n const { size, label: triggerLabel, disabled } = triggerProps;\n const forceDisabled = useDisabled();\n const isComponentDisabled = disabled || forceDisabled;\n const sizeProp = size === 'large' ? ({ size: 'large' } as const) : ({ size: 'medium' } as const);\n const inputWrapperStyles = { maxWidth: activatorRef.current?.offsetWidth };\n const searchable = _searchable && (size === 'large' || size === 'medium');\n const dataQa = triggerProps?.['data-qa'] || DEFAULT_DATA_QA;\n\n // селект без поиска (переключаем фокус и отправляем blur)\n useLayoutEffect(() => {\n if (searchable && !isMobile) {\n return;\n }\n if (!showOptions && prevVisibleRef.current) {\n setInitialValuesWithoutOnChange();\n if (forcedState === 'focus') {\n activatorRef.current?.focus();\n setForcedState?.(null);\n showedByFocus.current = false;\n }\n }\n if (!forcedState && !showOptions && prevVisibleRef.current) {\n onBlur?.();\n }\n prevVisibleRef.current = showOptions;\n }, [activatorRef, forcedState, isMobile, onBlur, searchable, setInitialValuesWithoutOnChange, showOptions]);\n\n // селект с поиском (нужно подменить контрол)\n useLayoutEffect(() => {\n if (!searchable || isMobile || pickerDesktopType === 'modal') {\n return;\n }\n if (forcedState === 'focus' || forcedState === 'focusAndSelect') {\n setSearchInputState({\n useSearchInput: useDefaultTrigger,\n emitEvents: true,\n });\n }\n }, [forcedState, isMobile, searchable, useDefaultTrigger, pickerDesktopType]);\n\n // триггер подменяться на input (тут пачка логики + blur)\n useLayoutEffect(() => {\n if (!searchInputState.emitEvents) {\n return;\n }\n // немного магипуляций, если тригер дефотный\n if (searchInputState.useSearchInput) {\n if (!inputRef.current) {\n return;\n }\n if (forcedState === 'focus') {\n inputRef.current.focus();\n }\n // например во время выбора опции, нужно выбрать текст\n if (forcedState === 'focusAndSelect') {\n inputRef.current?.focus();\n inputRef.current?.select();\n }\n }\n if (!showOptions && prevVisibleRef.current) {\n setInitialValuesWithoutOnChange();\n }\n if (!forcedState && !showOptions) {\n setSearchInputState({\n useSearchInput: false,\n emitEvents: false,\n });\n if (prevVisibleRef.current) {\n onBlur?.();\n }\n }\n prevVisibleRef.current = showOptions;\n }, [forcedState, onBlur, setForcedState, searchInputState, showOptions, setInitialValuesWithoutOnChange]);\n\n const handleKeyDown = useCallback<KeyboardEventHandler>(\n (event) => {\n if (showOptions && keyboardMatch(event.nativeEvent, keyboardKeys.Escape)) {\n showedByFocus.current = false;\n setForcedState('focus');\n\n toggleListVisibility();\n return;\n }\n\n // движение по списку опций\n if (showOptions && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowUp)) {\n focusOptionsList(event, dropRef?.current, 'up');\n return;\n }\n\n if (showOptions && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowDown)) {\n focusOptionsList(event, dropRef?.current, 'down');\n return;\n }\n\n // после закрытия пользователь решил что-то поделать опять\n if (\n !showOptions &&\n !keyboardMatches(event.nativeEvent, [keyboardKeys.Tab, keyboardKeys.Escape, keyboardKeys.Space])\n ) {\n toggleListVisibility();\n }\n },\n [showOptions, toggleListVisibility]\n );\n\n return (\n <>\n {!searchInputState.useSearchInput &&\n renderTrigger({\n values: selectedLabels,\n expanded: showOptions,\n toggleExpanded: toggleListVisibility,\n onChange: () => {\n if (isComponentDisabled) {\n return;\n }\n // открываем по фокусу, закрываем по клику\n // повторно открываем по клику (события фокуса уже не будет)\n if (showedByFocus.current) {\n showedByFocus.current = false;\n return;\n }\n toggleListVisibility();\n },\n onClear: () => clearSelectedValues(),\n ref: activatorRefCallback,\n onKeyDown: handleKeyDown,\n onBlur: () => {\n setForcedState(null);\n if (showOptions && optionList.length === 0 && !emptyOptionsHint) {\n toggleListVisibility();\n }\n if (!showOptions && forcedState === null) {\n onBlur?.();\n }\n },\n onFocus: () => {\n if (isComponentDisabled || showOptions) {\n return;\n }\n if (!showOptions && forcedState !== 'focus' && forcedState !== 'focusAndSelect') {\n onFocus?.();\n setForcedState('focus');\n\n toggleListVisibility();\n }\n showedByFocus.current = true;\n },\n 'data-qa': dataQa,\n setSearchValue,\n optionsCount: optionList.length,\n ...triggerProps,\n disabled: isComponentDisabled,\n } as TriggerPropsWithRef & SetSearchValue & OptionsCount)}\n {searchInputState.useSearchInput && (\n <div style={inputWrapperStyles}>\n <BaseInput\n {...sizeProp}\n ref={inputRef}\n wrapperRef={activatorRefCallback}\n value={searchValue}\n onChange={setSearchValue}\n onKeyDown={handleKeyDown}\n onFocus={() => {\n setForcedState('focus');\n }}\n onBlur={() => {\n setForcedState(null);\n if (showOptions && optionList.length === 0 && !emptyOptionsHint) {\n toggleListVisibility();\n }\n }}\n data-qa=\"magritte-select-activator-input\"\n placeholder={selectedLabels.length > 0 ? selectedLabels.join(', ') : triggerLabel}\n autoComplete=\"off\"\n />\n </div>\n )}\n {isMobile && (\n <SelectBottomSheet\n applyChangesButton={applyChangesButton}\n clearButton={clearButton}\n clearSelectedValues={clearSelectedValues}\n error={error}\n height={searchable || Boolean(error) || loading ? 'full-screen' : bottomSheetHeight}\n visible={Boolean(showOptions || internalLoading)}\n value={values}\n isLimitExceeded={isLimitExceeded}\n name={name}\n multiple={multiple}\n type={type}\n loading={loading || internalLoading}\n searchable={_searchable}\n useInitialValuesOnClearAction={useInitialValuesOnClearAction}\n initialValuesOnOpening={initialValuesOnOpening}\n renderItem={renderMobileItem}\n renderAlertOnExitWithoutSaving={renderAlertOnExitWithoutSaving}\n renderButtonsContainer={renderButtonsContainer}\n renderHeader={renderHeader}\n headerTitle={_headerTitle || triggerLabel}\n optionList={optionList}\n optionsListRef={optionsListRefCallback}\n onChange={onChange}\n onClose={onOptionsListClose}\n searchValue={searchValue}\n setSearchValue={setSearchValue}\n setInitialValues={setInitialValues}\n setSelectedValues={setSelectedValues}\n onBottomSheetClose={onBottomSheetClose}\n onBottomSheetOpen={onBottomSheetOpen}\n onSearchSubmit={onSearchSubmit}\n onApply={onApply}\n onClear={onClear}\n emptyOptionsHint={emptyOptionsHint}\n emptyOptionsSearchHint={emptyOptionsSearchHint}\n searchInProgress={searchInProgress}\n internalError={internalError}\n reload={reload}\n innerErrorTrls={innerErrorTrls}\n optionDataQa={optionDataQa}\n />\n )}\n {!isMobile && (\n <>\n {pickerDesktopType === 'drop' && (\n <SelectDrop\n activatorRef={activatorRef}\n applyChangesButton={applyChangesButton}\n clearButton={clearButton}\n clearSelectedValues={clearSelectedValues}\n isLimitExceeded={isLimitExceeded}\n name={name}\n multiple={multiple}\n maxWidth={maxWidth}\n type={type}\n loading={loading || internalLoading}\n useInitialValuesOnClearAction={useInitialValuesOnClearAction}\n onClose={onOptionsListClose}\n renderItem={renderDesktopItem}\n renderButtonsContainer={renderButtonsContainer}\n plain={plain}\n optionList={optionList}\n optionsListRef={optionsListRefCallback}\n value={values}\n onChange={onChange}\n searchValue={searchValue}\n searchable={searchable}\n forceDropVisibleWithEmptyOptions={forceDropVisibleWithEmptyOptions || internalLoading}\n setSearchValue={setSearchValue}\n setInitialValues={setInitialValues}\n visible={!error && (showOptions || internalLoading)}\n widthEqualToActivator={widthEqualToActivator}\n renderContentBefore={renderContentBefore}\n setForcedState={setForcedState}\n setSelectedValues={setSelectedValues}\n maxHeight={maxHeight}\n onDropOpen={onDropOpen}\n onDropClose={onDropClose}\n onApply={onApply}\n onClear={onClear}\n emptyOptionsHint={emptyOptionsHint}\n emptyOptionsSearchHint={emptyOptionsSearchHint}\n searchInProgress={searchInProgress}\n internalError={internalError}\n reload={reload}\n innerErrorTrls={innerErrorTrls}\n optionDataQa={optionDataQa}\n dropWidth={dropWidth}\n />\n )}\n {pickerDesktopType === 'modal' && (\n <SelectModal\n {...modalProps}\n applyChangesButton={applyChangesButton}\n clearButton={clearButton}\n clearSelectedValues={clearSelectedValues}\n isLimitExceeded={isLimitExceeded}\n name={name}\n multiple={multiple}\n type={type}\n loading={loading || internalLoading}\n useInitialValuesOnClearAction={useInitialValuesOnClearAction}\n onClose={onOptionsListClose}\n renderItem={renderDesktopItem}\n renderButtonsContainer={renderButtonsContainer}\n plain={plain}\n optionList={optionList}\n optionsListRef={optionsListRefCallback}\n value={values}\n onChange={onChange}\n searchValue={searchValue}\n searchable={searchable}\n setSearchValue={setSearchValue}\n setInitialValues={setInitialValues}\n visible={Boolean(showOptions || internalLoading)}\n setForcedState={setForcedState}\n setSelectedValues={setSelectedValues}\n onApply={onApply}\n onClear={onClear}\n emptyOptionsHint={emptyOptionsHint}\n emptyOptionsSearchHint={emptyOptionsSearchHint}\n searchInProgress={searchInProgress}\n internalError={internalError}\n reload={reload}\n innerErrorTrls={innerErrorTrls}\n optionDataQa={optionDataQa}\n renderAlertOnExitWithoutSaving={renderAlertOnExitWithoutSaving}\n initialValuesOnOpening={initialValuesOnOpening}\n />\n )}\n </>\n )}\n </>\n );\n};\n\nconst Select = forwardRef(SelectComponent) as (<MultipleType extends boolean, DataType extends StaticDataFetcherItem>(\n props: SelectProps<MultipleType, DataType> & { ref?: ForwardedRef<HTMLElement> }\n) => ReactElement | null) & { displayName: string };\n\nSelect.displayName = 'Select';\n\nexport { Select };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
package/SelectBottomSheet.js
CHANGED
|
@@ -24,7 +24,7 @@ import '@hh.ru/magritte-common-use-disabled';
|
|
|
24
24
|
import '@hh.ru/magritte-ui-checkable-card/CheckableCardElement';
|
|
25
25
|
import '@hh.ru/magritte-ui-checkbox-radio';
|
|
26
26
|
|
|
27
|
-
var styles = {"select-bottom-sheet":"magritte-select-bottom-sheet___1RZDJ_12-
|
|
27
|
+
var styles = {"select-bottom-sheet":"magritte-select-bottom-sheet___1RZDJ_12-3-0","selectBottomSheet":"magritte-select-bottom-sheet___1RZDJ_12-3-0","select-bottom-sheet_checkbox":"magritte-select-bottom-sheet_checkbox___hwTgo_12-3-0","selectBottomSheetCheckbox":"magritte-select-bottom-sheet_checkbox___hwTgo_12-3-0","select-bottom-sheet_radio":"magritte-select-bottom-sheet_radio___qvFFV_12-3-0","selectBottomSheetRadio":"magritte-select-bottom-sheet_radio___qvFFV_12-3-0","select-bottom-sheet_without-header":"magritte-select-bottom-sheet_without-header___KOKVh_12-3-0","selectBottomSheetWithoutHeader":"magritte-select-bottom-sheet_without-header___KOKVh_12-3-0","full-screen-placeholder":"magritte-full-screen-placeholder___zPC8k_12-3-0","fullScreenPlaceholder":"magritte-full-screen-placeholder___zPC8k_12-3-0","error-wrapper":"magritte-error-wrapper___P7jYg_12-3-0","errorWrapper":"magritte-error-wrapper___P7jYg_12-3-0"};
|
|
28
28
|
|
|
29
29
|
const SelectOptionDefault = ({ data, input, type, checked, plain, }) => {
|
|
30
30
|
if (type === 'delimiter') {
|
package/SelectDrop.js
CHANGED
|
@@ -21,7 +21,7 @@ import '@hh.ru/magritte-common-use-disabled';
|
|
|
21
21
|
import '@hh.ru/magritte-ui-checkable-card/CheckableCardElement';
|
|
22
22
|
import '@hh.ru/magritte-ui-checkbox-radio';
|
|
23
23
|
|
|
24
|
-
var styles = {"select-drop-container-wrapper":"magritte-select-drop-container-wrapper___OHM0q_12-
|
|
24
|
+
var styles = {"select-drop-container-wrapper":"magritte-select-drop-container-wrapper___OHM0q_12-3-0","selectDropContainerWrapper":"magritte-select-drop-container-wrapper___OHM0q_12-3-0","select-drop-container":"magritte-select-drop-container___hee1p_12-3-0","selectDropContainer":"magritte-select-drop-container___hee1p_12-3-0","select-drop-container_plain":"magritte-select-drop-container_plain___766zl_12-3-0","selectDropContainerPlain":"magritte-select-drop-container_plain___766zl_12-3-0","select-drop-container_with-footer":"magritte-select-drop-container_with-footer___6wp-L_12-3-0","selectDropContainerWithFooter":"magritte-select-drop-container_with-footer___6wp-L_12-3-0","select-drop":"magritte-select-drop___jn4O-_12-3-0","selectDrop":"magritte-select-drop___jn4O-_12-3-0","select-drop-header":"magritte-select-drop-header___fMmio_12-3-0","selectDropHeader":"magritte-select-drop-header___fMmio_12-3-0","select-drop_plain":"magritte-select-drop_plain___VL8Fz_12-3-0","selectDropPlain":"magritte-select-drop_plain___VL8Fz_12-3-0","label-option":"magritte-label-option___2N7t9_12-3-0","labelOption":"magritte-label-option___2N7t9_12-3-0","loading":"magritte-loading___AMiuq_12-3-0","hint":"magritte-hint___6qaFl_12-3-0"};
|
|
25
25
|
|
|
26
26
|
const SelectOptionDefault = ({ data, input, type, plain, checked, }) => {
|
|
27
27
|
if (type === 'delimiter') {
|
package/SelectEmptyHint.js
CHANGED
|
@@ -6,7 +6,7 @@ import { VSpacing } from '@hh.ru/magritte-ui-spacing';
|
|
|
6
6
|
import { Title } from '@hh.ru/magritte-ui-title';
|
|
7
7
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
8
8
|
|
|
9
|
-
var styles = {"select-empty-hint":"magritte-select-empty-hint___B39XJ_12-
|
|
9
|
+
var styles = {"select-empty-hint":"magritte-select-empty-hint___B39XJ_12-3-0","selectEmptyHint":"magritte-select-empty-hint___B39XJ_12-3-0","icon":"magritte-icon___F0GQx_12-3-0","icon-init":"magritte-icon-init___GWK-V_12-3-0","iconInit":"magritte-icon-init___GWK-V_12-3-0","icon-search":"magritte-icon-search___ZsqO-_12-3-0","iconSearch":"magritte-icon-search___ZsqO-_12-3-0"};
|
|
10
10
|
|
|
11
11
|
const SelectEmptyHint = ({ title, titleElement, description, type }) => {
|
|
12
12
|
return (jsxs("div", { className: styles.selectEmptyHint, children: [type === 'init' && (jsx("div", { className: classnames(styles.icon, styles.iconInit), children: jsx(MagnifierOutlinedSize24, {}) })), type === 'emptySearch' && (jsx("div", { className: classnames(styles.icon, styles.iconSearch), children: jsx(EmojiHalfsadOutlinedSize24, {}) })), jsx(VSpacing, { default: 32 }), jsx(Title, { Element: titleElement, size: "small", children: title }), jsx(VSpacing, { default: 8 }), Boolean(description) && (jsx(Text, { typography: "paragraph-2-regular", style: "secondary", children: description }))] }));
|
package/SelectError.js
CHANGED
|
@@ -7,7 +7,7 @@ import { VSpacing } from '@hh.ru/magritte-ui-spacing';
|
|
|
7
7
|
import { Title } from '@hh.ru/magritte-ui-title';
|
|
8
8
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
9
9
|
|
|
10
|
-
var styles = {"error-container":"magritte-error-container___t9B5w_12-
|
|
10
|
+
var styles = {"error-container":"magritte-error-container___t9B5w_12-3-0","errorContainer":"magritte-error-container___t9B5w_12-3-0"};
|
|
11
11
|
|
|
12
12
|
const SelectError = ({ innerErrorTrls, reload, }) => {
|
|
13
13
|
const { isMobile } = useBreakpoint();
|
package/SelectModal.js
CHANGED
|
@@ -23,7 +23,7 @@ import '@hh.ru/magritte-common-use-disabled';
|
|
|
23
23
|
import '@hh.ru/magritte-ui-checkable-card/CheckableCardElement';
|
|
24
24
|
import '@hh.ru/magritte-ui-checkbox-radio';
|
|
25
25
|
|
|
26
|
-
var styles = {"select-modal-wrapper":"magritte-select-modal-wrapper___5BhtC_12-
|
|
26
|
+
var styles = {"select-modal-wrapper":"magritte-select-modal-wrapper___5BhtC_12-3-0","selectModalWrapper":"magritte-select-modal-wrapper___5BhtC_12-3-0","select-modal":"magritte-select-modal___f9wc6_12-3-0","selectModal":"magritte-select-modal___f9wc6_12-3-0","select-modal_plain":"magritte-select-modal_plain___0rP39_12-3-0","selectModalPlain":"magritte-select-modal_plain___0rP39_12-3-0","label-option":"magritte-label-option___kFAuR_12-3-0","labelOption":"magritte-label-option___kFAuR_12-3-0","layer-full-height":"magritte-layer-full-height___cJX-K_12-3-0","layerFullHeight":"magritte-layer-full-height___cJX-K_12-3-0"};
|
|
27
27
|
|
|
28
28
|
const SelectOptionDefault = ({ data, input, type, plain, checked, }) => {
|
|
29
29
|
if (type === 'delimiter') {
|
package/SelectOption.js
CHANGED
|
@@ -8,7 +8,7 @@ import { CheckableCardElement } from '@hh.ru/magritte-ui-checkable-card/Checkabl
|
|
|
8
8
|
import { Radio, Checkbox } from '@hh.ru/magritte-ui-checkbox-radio';
|
|
9
9
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
10
10
|
|
|
11
|
-
var styles = {"select-option-plain":"magritte-select-option-plain___dfz4a_12-
|
|
11
|
+
var styles = {"select-option-plain":"magritte-select-option-plain___dfz4a_12-3-0","selectOptionPlain":"magritte-select-option-plain___dfz4a_12-3-0","select-option-plain_active":"magritte-select-option-plain_active___AQSQS_12-3-0","selectOptionPlainActive":"magritte-select-option-plain_active___AQSQS_12-3-0","select-delimiter":"magritte-select-delimiter___WyeR6_12-3-0","selectDelimiter":"magritte-select-delimiter___WyeR6_12-3-0"};
|
|
12
12
|
|
|
13
13
|
const CheckableComponent = ({ type, value, checked, name, onChange, 'data-qa': dataQa, }) => {
|
|
14
14
|
if (type === 'label') {
|
package/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.magritte-error-container___t9B5w_12-
|
|
1
|
+
.magritte-error-container___t9B5w_12-3-0{
|
|
2
2
|
display:flex;
|
|
3
3
|
flex-direction:column;
|
|
4
4
|
align-items:center;
|
|
@@ -6,95 +6,95 @@
|
|
|
6
6
|
justify-content:center;
|
|
7
7
|
}
|
|
8
8
|
@media (min-width: 1020px){
|
|
9
|
-
body.magritte-old-layout .magritte-error-container___t9B5w_12-
|
|
9
|
+
body.magritte-old-layout .magritte-error-container___t9B5w_12-3-0{
|
|
10
10
|
min-height:320px;
|
|
11
11
|
height:auto;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
@media (min-width: 1024px){
|
|
15
|
-
body:not(.magritte-old-layout) .magritte-error-container___t9B5w_12-
|
|
15
|
+
body:not(.magritte-old-layout) .magritte-error-container___t9B5w_12-3-0{
|
|
16
16
|
min-height:320px;
|
|
17
17
|
height:auto;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
.magritte-select-option-plain___dfz4a_12-
|
|
21
|
+
.magritte-select-option-plain___dfz4a_12-3-0:hover{
|
|
22
22
|
cursor:default;
|
|
23
23
|
}
|
|
24
|
-
.magritte-select-option-plain_active___AQSQS_12-
|
|
24
|
+
.magritte-select-option-plain_active___AQSQS_12-3-0:hover{
|
|
25
25
|
cursor:pointer;
|
|
26
26
|
}
|
|
27
|
-
.magritte-select-delimiter___WyeR6_12-
|
|
27
|
+
.magritte-select-delimiter___WyeR6_12-3-0{
|
|
28
28
|
padding-left:16px;
|
|
29
29
|
padding-top:12px;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
.magritte-select-bottom-sheet___1RZDJ_12-
|
|
32
|
+
.magritte-select-bottom-sheet___1RZDJ_12-3-0{
|
|
33
33
|
display:flex;
|
|
34
34
|
flex-direction:column;
|
|
35
35
|
padding:0 16px;
|
|
36
36
|
padding-bottom:16px;
|
|
37
37
|
}
|
|
38
|
-
.magritte-select-bottom-sheet_checkbox___hwTgo_12-
|
|
39
|
-
.magritte-select-bottom-sheet_radio___qvFFV_12-
|
|
38
|
+
.magritte-select-bottom-sheet_checkbox___hwTgo_12-3-0,
|
|
39
|
+
.magritte-select-bottom-sheet_radio___qvFFV_12-3-0{
|
|
40
40
|
gap:12px;
|
|
41
41
|
}
|
|
42
|
-
.magritte-select-bottom-sheet_without-header___KOKVh_12-
|
|
42
|
+
.magritte-select-bottom-sheet_without-header___KOKVh_12-3-0{
|
|
43
43
|
padding-top:16px;
|
|
44
44
|
}
|
|
45
|
-
.magritte-full-screen-placeholder___zPC8k_12-
|
|
45
|
+
.magritte-full-screen-placeholder___zPC8k_12-3-0{
|
|
46
46
|
display:flex;
|
|
47
47
|
flex-direction:column;
|
|
48
48
|
align-items:center;
|
|
49
49
|
height:100%;
|
|
50
50
|
justify-content:center;
|
|
51
51
|
}
|
|
52
|
-
.magritte-error-wrapper___P7jYg_12-
|
|
52
|
+
.magritte-error-wrapper___P7jYg_12-3-0{
|
|
53
53
|
height:100%;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
.magritte-select-drop-container-wrapper___OHM0q_12-
|
|
56
|
+
.magritte-select-drop-container-wrapper___OHM0q_12-3-0{
|
|
57
57
|
display:flex;
|
|
58
58
|
flex-direction:column;
|
|
59
59
|
}
|
|
60
|
-
.magritte-select-drop-container___hee1p_12-
|
|
60
|
+
.magritte-select-drop-container___hee1p_12-3-0{
|
|
61
61
|
display:flex;
|
|
62
62
|
flex-direction:column;
|
|
63
63
|
padding:12px;
|
|
64
64
|
margin:calc(-1 * 12px);
|
|
65
65
|
}
|
|
66
|
-
.magritte-select-drop-container_plain___766zl_12-
|
|
66
|
+
.magritte-select-drop-container_plain___766zl_12-3-0{
|
|
67
67
|
padding:24px;
|
|
68
68
|
margin:calc(-1 * 24px);
|
|
69
69
|
}
|
|
70
|
-
.magritte-select-drop-container_with-footer___6wp-L_12-
|
|
70
|
+
.magritte-select-drop-container_with-footer___6wp-L_12-3-0{
|
|
71
71
|
margin-bottom:0;
|
|
72
72
|
padding-bottom:0;
|
|
73
73
|
}
|
|
74
|
-
.magritte-select-drop___jn4O-_12-
|
|
74
|
+
.magritte-select-drop___jn4O-_12-3-0{
|
|
75
75
|
display:flex;
|
|
76
76
|
flex-direction:column;
|
|
77
77
|
gap:8px;
|
|
78
78
|
}
|
|
79
|
-
.magritte-select-drop-header___fMmio_12-
|
|
79
|
+
.magritte-select-drop-header___fMmio_12-3-0{
|
|
80
80
|
display:flex;
|
|
81
81
|
flex-direction:column;
|
|
82
82
|
margin-bottom:8px;
|
|
83
83
|
}
|
|
84
|
-
.magritte-select-drop_plain___VL8Fz_12-
|
|
84
|
+
.magritte-select-drop_plain___VL8Fz_12-3-0{
|
|
85
85
|
gap:16px;
|
|
86
86
|
}
|
|
87
|
-
.magritte-label-option___2N7t9_12-
|
|
87
|
+
.magritte-label-option___2N7t9_12-3-0{
|
|
88
88
|
display:flex;
|
|
89
89
|
justify-content:center;
|
|
90
90
|
}
|
|
91
|
-
.magritte-loading___AMiuq_12-
|
|
91
|
+
.magritte-loading___AMiuq_12-3-0{
|
|
92
92
|
display:flex;
|
|
93
93
|
align-items:center;
|
|
94
94
|
height:150px;
|
|
95
95
|
justify-content:center;
|
|
96
96
|
}
|
|
97
|
-
.magritte-hint___6qaFl_12-
|
|
97
|
+
.magritte-hint___6qaFl_12-3-0{
|
|
98
98
|
display:flex;
|
|
99
99
|
flex-direction:column;
|
|
100
100
|
align-items:center;
|
|
@@ -102,24 +102,24 @@
|
|
|
102
102
|
justify-content:center;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
.magritte-select-modal-wrapper___5BhtC_12-
|
|
105
|
+
.magritte-select-modal-wrapper___5BhtC_12-3-0{
|
|
106
106
|
display:flex;
|
|
107
107
|
flex-direction:column;
|
|
108
108
|
flex-grow:1;
|
|
109
109
|
}
|
|
110
|
-
.magritte-select-modal___f9wc6_12-
|
|
110
|
+
.magritte-select-modal___f9wc6_12-3-0{
|
|
111
111
|
display:flex;
|
|
112
112
|
flex-direction:column;
|
|
113
113
|
gap:12px;
|
|
114
114
|
}
|
|
115
|
-
.magritte-select-modal_plain___0rP39_12-
|
|
115
|
+
.magritte-select-modal_plain___0rP39_12-3-0{
|
|
116
116
|
gap:0;
|
|
117
117
|
}
|
|
118
|
-
.magritte-label-option___kFAuR_12-
|
|
118
|
+
.magritte-label-option___kFAuR_12-3-0{
|
|
119
119
|
display:flex;
|
|
120
120
|
justify-content:center;
|
|
121
121
|
}
|
|
122
|
-
.magritte-layer-full-height___cJX-K_12-
|
|
122
|
+
.magritte-layer-full-height___cJX-K_12-3-0{
|
|
123
123
|
display:flex;
|
|
124
124
|
flex-direction:column;
|
|
125
125
|
align-items:center;
|
|
@@ -129,31 +129,31 @@
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
:root{
|
|
132
|
-
--magritte-color-background-secondary-
|
|
133
|
-
--magritte-color-background-accent-secondary-
|
|
134
|
-
--magritte-color-icon-tertiary-
|
|
135
|
-
--magritte-color-icon-accent-
|
|
132
|
+
--magritte-color-background-secondary-v24-0-0:#F1F4F9;
|
|
133
|
+
--magritte-color-background-accent-secondary-v24-0-0:#EDF6FF;
|
|
134
|
+
--magritte-color-icon-tertiary-v24-0-0:#AABBCA;
|
|
135
|
+
--magritte-color-icon-accent-v24-0-0:#0070ff;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
.magritte-night-theme{
|
|
139
|
-
--magritte-color-background-secondary-
|
|
140
|
-
--magritte-color-background-accent-secondary-
|
|
141
|
-
--magritte-color-icon-tertiary-
|
|
142
|
-
--magritte-color-icon-accent-
|
|
139
|
+
--magritte-color-background-secondary-v24-0-0:#303030;
|
|
140
|
+
--magritte-color-background-accent-secondary-v24-0-0:#222D3D;
|
|
141
|
+
--magritte-color-icon-tertiary-v24-0-0:#767676;
|
|
142
|
+
--magritte-color-icon-accent-v24-0-0:#5e9eff;
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
.magritte-zp-day-theme{
|
|
146
|
-
--magritte-color-background-accent-secondary-
|
|
147
|
-
--magritte-color-icon-accent-
|
|
146
|
+
--magritte-color-background-accent-secondary-v24-0-0:#F1F4F7;
|
|
147
|
+
--magritte-color-icon-accent-v24-0-0:#7195AF;
|
|
148
148
|
}
|
|
149
|
-
.magritte-select-empty-hint___B39XJ_12-
|
|
149
|
+
.magritte-select-empty-hint___B39XJ_12-3-0{
|
|
150
150
|
display:flex;
|
|
151
151
|
flex-direction:column;
|
|
152
152
|
justify-content:center;
|
|
153
153
|
align-content:center;
|
|
154
154
|
align-items:center;
|
|
155
155
|
}
|
|
156
|
-
.magritte-icon___F0GQx_12-
|
|
156
|
+
.magritte-icon___F0GQx_12-3-0{
|
|
157
157
|
display:flex;
|
|
158
158
|
align-items:center;
|
|
159
159
|
justify-content:center;
|
|
@@ -161,11 +161,11 @@
|
|
|
161
161
|
height:48px;
|
|
162
162
|
border-radius:50%;
|
|
163
163
|
}
|
|
164
|
-
.magritte-icon-init___GWK-V_12-
|
|
165
|
-
background-color:var(--magritte-color-background-accent-secondary-
|
|
166
|
-
--magritte-ui-icon-color-override:var(--magritte-color-icon-accent-
|
|
164
|
+
.magritte-icon-init___GWK-V_12-3-0{
|
|
165
|
+
background-color:var(--magritte-color-background-accent-secondary-v24-0-0);
|
|
166
|
+
--magritte-ui-icon-color-override:var(--magritte-color-icon-accent-v24-0-0);
|
|
167
167
|
}
|
|
168
|
-
.magritte-icon-search___ZsqO-_12-
|
|
169
|
-
background-color:var(--magritte-color-background-secondary-
|
|
170
|
-
--magritte-ui-icon-color-override:var(--magritte-color-icon-tertiary-
|
|
168
|
+
.magritte-icon-search___ZsqO-_12-3-0{
|
|
169
|
+
background-color:var(--magritte-color-background-secondary-v24-0-0);
|
|
170
|
+
--magritte-ui-icon-color-override:var(--magritte-color-icon-tertiary-v24-0-0);
|
|
171
171
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hh.ru/magritte-ui-select",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.3.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"sideEffects": [
|
|
@@ -31,26 +31,26 @@
|
|
|
31
31
|
"@hh.ru/magritte-common-keyboard": "4.1.3",
|
|
32
32
|
"@hh.ru/magritte-common-use-disabled": "1.0.13",
|
|
33
33
|
"@hh.ru/magritte-common-use-multiple-refs": "1.1.9",
|
|
34
|
-
"@hh.ru/magritte-design-tokens": "
|
|
35
|
-
"@hh.ru/magritte-ui-action-bar": "5.0.
|
|
36
|
-
"@hh.ru/magritte-ui-bottom-sheet": "9.0.
|
|
34
|
+
"@hh.ru/magritte-design-tokens": "24.0.0",
|
|
35
|
+
"@hh.ru/magritte-ui-action-bar": "5.0.15",
|
|
36
|
+
"@hh.ru/magritte-ui-bottom-sheet": "9.0.2",
|
|
37
37
|
"@hh.ru/magritte-ui-breakpoint": "6.0.1",
|
|
38
|
-
"@hh.ru/magritte-ui-button": "6.0.
|
|
39
|
-
"@hh.ru/magritte-ui-button-stack": "2.1.
|
|
40
|
-
"@hh.ru/magritte-ui-cell": "7.0.
|
|
41
|
-
"@hh.ru/magritte-ui-checkable-card": "4.1.
|
|
42
|
-
"@hh.ru/magritte-ui-checkbox-radio": "4.0.
|
|
43
|
-
"@hh.ru/magritte-ui-drop": "12.0.
|
|
44
|
-
"@hh.ru/magritte-ui-icon": "13.2.
|
|
45
|
-
"@hh.ru/magritte-ui-input": "9.1.
|
|
46
|
-
"@hh.ru/magritte-ui-loader": "2.0.
|
|
38
|
+
"@hh.ru/magritte-ui-button": "6.0.16",
|
|
39
|
+
"@hh.ru/magritte-ui-button-stack": "2.1.86",
|
|
40
|
+
"@hh.ru/magritte-ui-cell": "7.0.10",
|
|
41
|
+
"@hh.ru/magritte-ui-checkable-card": "4.1.10",
|
|
42
|
+
"@hh.ru/magritte-ui-checkbox-radio": "4.0.16",
|
|
43
|
+
"@hh.ru/magritte-ui-drop": "12.0.6",
|
|
44
|
+
"@hh.ru/magritte-ui-icon": "13.2.1",
|
|
45
|
+
"@hh.ru/magritte-ui-input": "9.1.5",
|
|
46
|
+
"@hh.ru/magritte-ui-loader": "2.0.15",
|
|
47
47
|
"@hh.ru/magritte-ui-mock-component": "1.1.5",
|
|
48
|
-
"@hh.ru/magritte-ui-modal": "9.3.
|
|
49
|
-
"@hh.ru/magritte-ui-navigation-bar": "10.0.
|
|
50
|
-
"@hh.ru/magritte-ui-spacing": "2.0.
|
|
51
|
-
"@hh.ru/magritte-ui-title": "7.0.
|
|
52
|
-
"@hh.ru/magritte-ui-trigger": "4.0.
|
|
53
|
-
"@hh.ru/magritte-ui-typography": "4.2.
|
|
48
|
+
"@hh.ru/magritte-ui-modal": "9.3.2",
|
|
49
|
+
"@hh.ru/magritte-ui-navigation-bar": "10.0.20",
|
|
50
|
+
"@hh.ru/magritte-ui-spacing": "2.0.65",
|
|
51
|
+
"@hh.ru/magritte-ui-title": "7.0.12",
|
|
52
|
+
"@hh.ru/magritte-ui-trigger": "4.0.18",
|
|
53
|
+
"@hh.ru/magritte-ui-typography": "4.2.7"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "835817508fa0c58db103330de0d1c3e39a7d1305"
|
|
56
56
|
}
|
package/types.d.ts
CHANGED
|
@@ -95,14 +95,17 @@ export interface RenderHeaderProps extends SearchValueHelper, OptionsCount {
|
|
|
95
95
|
export interface RenderHeader {
|
|
96
96
|
(props: RenderHeaderProps): ReactNode;
|
|
97
97
|
}
|
|
98
|
+
export type ValueTypeHelper<MultipleType extends boolean, DataType extends StaticDataFetcherItem> = [
|
|
99
|
+
MultipleType
|
|
100
|
+
] extends [true] ? DataType[] : DataType;
|
|
98
101
|
export interface UseSelectStateHelper<DataType extends StaticDataFetcherItem> {
|
|
99
102
|
onChange: OnChangeAction<DataType>;
|
|
100
103
|
clearSelectedValues: VoidFunction;
|
|
101
104
|
setInitialValues: VoidFunction;
|
|
102
105
|
setSelectedValues: VoidFunction;
|
|
103
106
|
}
|
|
104
|
-
export interface UseSelectState<MultipleType extends boolean, DataType extends StaticDataFetcherItem
|
|
105
|
-
values:
|
|
107
|
+
export interface UseSelectState<MultipleType extends boolean, DataType extends StaticDataFetcherItem> extends UseSelectStateHelper<DataType> {
|
|
108
|
+
values: ValueTypeHelper<MultipleType, DataType>;
|
|
106
109
|
setInitialValuesWithoutOnChange: VoidFunction;
|
|
107
110
|
initialValuesOnOpening: RefObject<DataType[]>;
|
|
108
111
|
}
|
|
@@ -123,11 +126,11 @@ export interface InnerErrorTrls {
|
|
|
123
126
|
reloadButton: string;
|
|
124
127
|
}
|
|
125
128
|
export type PickerDesktopType = 'drop' | 'modal';
|
|
126
|
-
export interface SelectBaseProps<MultipleType extends boolean, DataType extends StaticDataFetcherItem
|
|
129
|
+
export interface SelectBaseProps<MultipleType extends boolean, DataType extends StaticDataFetcherItem> {
|
|
127
130
|
/** Тип поиска (определяет рендер элементов, по умолчанию) */
|
|
128
131
|
type: SelectType;
|
|
129
132
|
/** Значение Select, для multiple - это массив */
|
|
130
|
-
value?:
|
|
133
|
+
value?: ValueTypeHelper<MultipleType, DataType>;
|
|
131
134
|
/** Флаг включения мультивыбора */
|
|
132
135
|
multiple?: MultipleType;
|
|
133
136
|
/** Name атрибут cелекта */
|
|
@@ -158,7 +161,7 @@ export interface SelectBaseProps<MultipleType extends boolean, DataType extends
|
|
|
158
161
|
export interface OnOptionsChangeCallback<DataType extends StaticDataFetcherItem> {
|
|
159
162
|
(options: SelectOption<DataType>[]): void;
|
|
160
163
|
}
|
|
161
|
-
interface SelectPropsHelper<MultipleType extends boolean, DataType extends StaticDataFetcherItem
|
|
164
|
+
interface SelectPropsHelper<MultipleType extends boolean, DataType extends StaticDataFetcherItem> {
|
|
162
165
|
/** Функция провайдер данных */
|
|
163
166
|
dataProvider: DataProvider<DataType>;
|
|
164
167
|
/** Максимальное количество выбранных опций */
|
|
@@ -170,7 +173,7 @@ interface SelectPropsHelper<MultipleType extends boolean, DataType extends Stati
|
|
|
170
173
|
/** Render функция для Trigger */
|
|
171
174
|
renderTrigger?: (props: TriggerPropsWithRef & SetSearchValue & OptionsCount) => ReactElement;
|
|
172
175
|
/** onChange хендлер изменения селекта, для multiple возвращает массив выбранных значений */
|
|
173
|
-
onChange: (value:
|
|
176
|
+
onChange: (value: ValueTypeHelper<MultipleType, DataType>) => void;
|
|
174
177
|
/** Render функция для option для mobile view */
|
|
175
178
|
renderMobileItem?: RenderOptionType<DataType>;
|
|
176
179
|
/** Render функция для option для desktop view */
|
|
@@ -268,9 +271,9 @@ export type SelectBottomSheetProps<MultipleType extends boolean, DataType extend
|
|
|
268
271
|
export type SelectDropProps<MultipleType extends boolean, DataType extends StaticDataFetcherItem> = SelectBaseProps<MultipleType, DataType> & SelectSearchAndCommitStuff<DataType> & InternalSelectDropProps & ExternalSelectDropProps & DropPropsHelper & SelectButtons;
|
|
269
272
|
export type SelectModalProps<MultipleType extends boolean, DataType extends StaticDataFetcherItem> = SelectBaseProps<MultipleType, DataType> & SelectSearchAndCommitStuff<DataType> & InternalModalProps<DataType> & ExternalSelectModalProps & ModalPropsHelper & SelectButtons;
|
|
270
273
|
export type SelectProps<MultipleType extends boolean, DataType extends StaticDataFetcherItem> = SelectBaseProps<MultipleType, DataType> & SelectButtons & ExternalSelectDropProps & ExternalSelectBottomSheetProps & SelectPropsHelper<MultipleType, DataType>;
|
|
271
|
-
export type UncontrolledSelectProps<MultipleType extends boolean, DataType extends StaticDataFetcherItem
|
|
272
|
-
value?:
|
|
273
|
-
onChange?: (value:
|
|
274
|
+
export type UncontrolledSelectProps<MultipleType extends boolean, DataType extends StaticDataFetcherItem> = {
|
|
275
|
+
value?: ValueTypeHelper<MultipleType, DataType>;
|
|
276
|
+
onChange?: (value: ValueTypeHelper<MultipleType, DataType>) => void;
|
|
274
277
|
} & Omit<SelectProps<MultipleType, DataType>, 'value' | 'onChange'>;
|
|
275
278
|
export interface SelectEmptyHintProps {
|
|
276
279
|
type: 'init' | 'emptySearch';
|
package/useSelectState.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { StaticDataFetcherItem } from '@hh.ru/magritte-common-data-provider';
|
|
2
|
-
import { UseSelectState } from '@hh.ru/magritte-ui-select/types';
|
|
3
|
-
export declare const useSelectState: <DataType extends StaticDataFetcherItem, MultipleType extends boolean
|
|
2
|
+
import { UseSelectState, ValueTypeHelper } from '@hh.ru/magritte-ui-select/types';
|
|
3
|
+
export declare const useSelectState: <DataType extends StaticDataFetcherItem, MultipleType extends boolean>(multiple: boolean, value: DataType[] | DataType, showOptions: boolean, hasChangesButton?: boolean, onChangeExternalHandler?: (value: ValueTypeHelper<MultipleType, DataType>) => void, onSelectOption?: (values: DataType[]) => void) => UseSelectState<MultipleType, DataType>;
|
package/useSelectState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectState.js","sources":["../src/useSelectState.ts"],"sourcesContent":["import { useCallback, useReducer, useEffect, useRef } from 'react';\n\nimport { StaticDataFetcherItem } from '@hh.ru/magritte-common-data-provider';\nimport { isArraysEquals } from '@hh.ru/magritte-ui-select/isArraysEquals';\nimport { UseSelectState } from '@hh.ru/magritte-ui-select/types';\n\nconst ADD = 'ADD';\nconst SET = 'SET';\nconst REMOVE = 'REMOVE';\nconst SINGLE_CHOICE = 'SINGLE_CHOICE';\nconst CLEAR = 'CLEAR';\n\nconst reducer = <DataType extends StaticDataFetcherItem>(\n state: DataType[],\n {\n type,\n payload,\n }:\n | { type: typeof ADD | typeof REMOVE | typeof SINGLE_CHOICE; payload: DataType[] }\n | { type: typeof CLEAR; payload?: DataType }\n | { type: typeof SET; payload: DataType[] }\n) => {\n switch (type) {\n case ADD:\n return payload;\n case SET:\n return [...payload];\n case REMOVE:\n return payload;\n case CLEAR:\n return [];\n case SINGLE_CHOICE:\n return payload;\n default:\n return state;\n }\n};\n\nexport const useSelectState =
|
|
1
|
+
{"version":3,"file":"useSelectState.js","sources":["../src/useSelectState.ts"],"sourcesContent":["import { useCallback, useReducer, useEffect, useRef } from 'react';\n\nimport { StaticDataFetcherItem } from '@hh.ru/magritte-common-data-provider';\nimport { isArraysEquals } from '@hh.ru/magritte-ui-select/isArraysEquals';\nimport { UseSelectState, ValueTypeHelper } from '@hh.ru/magritte-ui-select/types';\n\nconst ADD = 'ADD';\nconst SET = 'SET';\nconst REMOVE = 'REMOVE';\nconst SINGLE_CHOICE = 'SINGLE_CHOICE';\nconst CLEAR = 'CLEAR';\n\nconst reducer = <DataType extends StaticDataFetcherItem>(\n state: DataType[],\n {\n type,\n payload,\n }:\n | { type: typeof ADD | typeof REMOVE | typeof SINGLE_CHOICE; payload: DataType[] }\n | { type: typeof CLEAR; payload?: DataType }\n | { type: typeof SET; payload: DataType[] }\n) => {\n switch (type) {\n case ADD:\n return payload;\n case SET:\n return [...payload];\n case REMOVE:\n return payload;\n case CLEAR:\n return [];\n case SINGLE_CHOICE:\n return payload;\n default:\n return state;\n }\n};\n\nexport const useSelectState = <DataType extends StaticDataFetcherItem, MultipleType extends boolean>(\n multiple: boolean,\n value: DataType[] | DataType,\n showOptions: boolean,\n hasChangesButton?: boolean,\n onChangeExternalHandler?: (value: ValueTypeHelper<MultipleType, DataType>) => void,\n onSelectOption?: (values: DataType[]) => void\n): UseSelectState<MultipleType, DataType> => {\n const valuesArr = Array.isArray(value) ? value : [value];\n const prevValues = useRef(valuesArr);\n const initialValuesOnMount = useRef(valuesArr);\n const initialValuesOnOpening = useRef<DataType[]>([]);\n const [state, dispatch] = useReducer(reducer<DataType>, valuesArr);\n const stateRef = useRef(state);\n stateRef.current = state;\n\n // используем ref, чтобы не вызывать пересчетов функции внутри хука из-за стрелочных колбэков\n const onChangeExternalHandlerRef = useRef(onChangeExternalHandler);\n onChangeExternalHandlerRef.current = onChangeExternalHandler;\n const onSelectOptionRef = useRef(onSelectOption);\n onSelectOptionRef.current = onSelectOption;\n\n const updateSelectedValues = useCallback(\n (values: DataType[], needEmitChangeEvent = true) => {\n if (needEmitChangeEvent) {\n const hasUnsavedChanges = !isArraysEquals<string>(\n prevValues.current.map((item) => item.value),\n values.map((item) => item.value)\n );\n if (hasUnsavedChanges) {\n onChangeExternalHandlerRef.current?.(\n (multiple ? values : values[0]) as ValueTypeHelper<MultipleType, DataType>\n );\n }\n }\n prevValues.current = values;\n },\n [multiple]\n );\n\n useEffect(() => {\n if (showOptions) {\n initialValuesOnOpening.current = state;\n }\n // сохраняем values при открытии select\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n }, [showOptions]);\n\n useEffect(() => {\n const newValues = Array.isArray(value) ? value : [value];\n if (isArraysEquals(newValues, stateRef.current)) {\n return;\n }\n // если values и редьюсер разошлись\n dispatch({ type: SET, payload: newValues });\n updateSelectedValues(newValues, false);\n }, [updateSelectedValues, value]);\n\n return {\n values: (multiple ? state : state[0]) as ValueTypeHelper<MultipleType, DataType>,\n clearSelectedValues: () => {\n dispatch({ type: CLEAR });\n updateSelectedValues([]);\n },\n setInitialValues: () => {\n dispatch({ type: SET, payload: initialValuesOnMount.current });\n updateSelectedValues(initialValuesOnMount.current);\n },\n setInitialValuesWithoutOnChange: () => {\n // в остальных кейсах селект обновляется сразу\n // либо выбранные значения сразу применяются\n if (!hasChangesButton) {\n return;\n }\n const hasInitialValuesAndPrevEmittedValusAreEqual = isArraysEquals<string>(\n initialValuesOnOpening.current.map((item) => item.value),\n prevValues.current.map((item) => item.value)\n );\n // если values после открытия не поменялись\n // то надо скоректировать состояния в drop/bottom-sheet\n // иначе в drop/bottom-sheet будут те же элементы что и при предыдущем открытии\n // даже если не нажимали кнопку применить\n if (hasInitialValuesAndPrevEmittedValusAreEqual) {\n dispatch({ type: SET, payload: initialValuesOnOpening.current });\n }\n },\n onChange: useCallback(\n (value, needToPut) => {\n const multipleActionType = needToPut ? ADD : REMOVE;\n const actionType = multiple ? multipleActionType : SINGLE_CHOICE;\n // single\n let newValue = [value];\n // multiple\n if (actionType === ADD) {\n newValue = [...state, value];\n }\n if (actionType === REMOVE) {\n newValue = state.filter((item) => item.value !== value.value);\n }\n dispatch({ type: actionType, payload: newValue });\n onSelectOptionRef.current?.(newValue);\n if (!hasChangesButton) {\n updateSelectedValues(newValue);\n }\n },\n [hasChangesButton, multiple, state, updateSelectedValues]\n ),\n setSelectedValues: () => {\n updateSelectedValues(state);\n },\n initialValuesOnOpening,\n };\n};\n"],"names":[],"mappings":"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"}
|