@hh.ru/magritte-ui-select 12.1.22 → 12.2.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 CHANGED
@@ -1,4 +1,4 @@
1
1
  import { ReactElement } 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
- export declare const Select: <MultipleType extends boolean, DataType extends StaticDataFetcherItem>({ type, multiple, value: _value, maxSelectedOptions, loading, error, searchable: _searchable, bottomSheetHeight, onChange: onChangeHandler, renderTrigger, triggerProps, renderMobileItem, renderDesktopItem, name, maxWidth, maxHeight, useInitialValuesOnClearAction, renderAlertOnExitWithoutSaving, renderButtonsContainer, renderHeader, headerTitle: _headerTitle, clearButton, applyChangesButton, forceDropVisibleWithEmptyOptions, plain, widthEqualToActivator, renderContentBefore, onBlur, onFocus, onDropOpen, onDropClose, onBottomSheetClose, onBottomSheetOpen, onSearchSubmit, onApply, onClear, onSelectOption, pickerRef, dataProvider, emptyOptionsHint, emptyOptionsSearchHint, onOptionsChange, innerErrorTrls, optionDataQa, pickerDesktopType, modalProps, }: SelectProps<MultipleType, DataType>) => ReactElement;
4
+ export declare const Select: <MultipleType extends boolean, DataType extends StaticDataFetcherItem>({ type, multiple, value: _value, maxSelectedOptions, loading, error, searchable: _searchable, bottomSheetHeight, onChange: onChangeHandler, renderTrigger, triggerProps, renderMobileItem, renderDesktopItem, name, maxWidth, maxHeight, useInitialValuesOnClearAction, renderAlertOnExitWithoutSaving, renderButtonsContainer, renderHeader, headerTitle: _headerTitle, clearButton, applyChangesButton, forceDropVisibleWithEmptyOptions, plain, widthEqualToActivator, renderContentBefore, onBlur, onFocus, onDropOpen, onDropClose, onBottomSheetClose, onBottomSheetOpen, onSearchSubmit, onApply, onClear, onSelectOption, pickerRef, dataProvider, emptyOptionsHint, emptyOptionsSearchHint, onOptionsChange, innerErrorTrls, optionDataQa, pickerDesktopType, modalProps, dropWidth, }: SelectProps<MultipleType, DataType>) => ReactElement;
package/Select.js CHANGED
@@ -58,7 +58,7 @@ const DEFAULT_TRIGGER_PROPS = {
58
58
  size: 'medium',
59
59
  'data-qa': DEFAULT_DATA_QA,
60
60
  };
61
- const Select = ({ 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, }) => {
61
+ const Select = ({ 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, }) => {
62
62
  const { isMobile } = useBreakpoint();
63
63
  const inputRef = useRef(null);
64
64
  const [searchInputState, setSearchInputState] = useState(SEARCH_INPUT_STATE);
@@ -228,7 +228,7 @@ const Select = ({ type, multiple, value: _value, maxSelectedOptions, loading, er
228
228
  if (showOptions && optionList.length === 0 && !emptyOptionsHint) {
229
229
  toggleListVisibility();
230
230
  }
231
- }, "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 })), 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 }))] }))] }));
231
+ }, "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
232
  };
233
233
 
234
234
  export { Select };
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}: 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 />\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} 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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"}
@@ -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-1-22","selectBottomSheet":"magritte-select-bottom-sheet___1RZDJ_12-1-22","select-bottom-sheet_checkbox":"magritte-select-bottom-sheet_checkbox___hwTgo_12-1-22","selectBottomSheetCheckbox":"magritte-select-bottom-sheet_checkbox___hwTgo_12-1-22","select-bottom-sheet_radio":"magritte-select-bottom-sheet_radio___qvFFV_12-1-22","selectBottomSheetRadio":"magritte-select-bottom-sheet_radio___qvFFV_12-1-22","select-bottom-sheet_without-header":"magritte-select-bottom-sheet_without-header___KOKVh_12-1-22","selectBottomSheetWithoutHeader":"magritte-select-bottom-sheet_without-header___KOKVh_12-1-22","full-screen-placeholder":"magritte-full-screen-placeholder___zPC8k_12-1-22","fullScreenPlaceholder":"magritte-full-screen-placeholder___zPC8k_12-1-22","error-wrapper":"magritte-error-wrapper___P7jYg_12-1-22","errorWrapper":"magritte-error-wrapper___P7jYg_12-1-22"};
27
+ var styles = {"select-bottom-sheet":"magritte-select-bottom-sheet___1RZDJ_12-2-0","selectBottomSheet":"magritte-select-bottom-sheet___1RZDJ_12-2-0","select-bottom-sheet_checkbox":"magritte-select-bottom-sheet_checkbox___hwTgo_12-2-0","selectBottomSheetCheckbox":"magritte-select-bottom-sheet_checkbox___hwTgo_12-2-0","select-bottom-sheet_radio":"magritte-select-bottom-sheet_radio___qvFFV_12-2-0","selectBottomSheetRadio":"magritte-select-bottom-sheet_radio___qvFFV_12-2-0","select-bottom-sheet_without-header":"magritte-select-bottom-sheet_without-header___KOKVh_12-2-0","selectBottomSheetWithoutHeader":"magritte-select-bottom-sheet_without-header___KOKVh_12-2-0","full-screen-placeholder":"magritte-full-screen-placeholder___zPC8k_12-2-0","fullScreenPlaceholder":"magritte-full-screen-placeholder___zPC8k_12-2-0","error-wrapper":"magritte-error-wrapper___P7jYg_12-2-0","errorWrapper":"magritte-error-wrapper___P7jYg_12-2-0"};
28
28
 
29
29
  const SelectOptionDefault = ({ data, input, type, checked, plain, }) => {
30
30
  if (type === 'delimiter') {
package/SelectDrop.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import { ReactElement } from 'react';
2
2
  import { StaticDataFetcherItem } from '@hh.ru/magritte-common-data-provider';
3
3
  import { SelectDropProps } from '@hh.ru/magritte-ui-select/types';
4
- export declare const SelectDrop: <MultipleType extends boolean, DataType extends StaticDataFetcherItem>({ activatorRef, type, name, multiple, applyChangesButton: _applyChangesButton, clearButton: _clearButton, useInitialValuesOnClearAction, loading, renderItem, renderButtonsContainer, visible, optionList, optionsListRef, searchValue, setSearchValue, maxWidth, value: values, onChange, onClose, clearSelectedValues, setInitialValues, isLimitExceeded, plain, searchable, widthEqualToActivator, forceDropVisibleWithEmptyOptions, renderContentBefore, setForcedState, setSelectedValues, maxHeight, onDropClose, onDropOpen, emptyOptionsHint, emptyOptionsSearchHint, onApply, onClear, searchInProgress, internalError, reload, innerErrorTrls, optionDataQa, ...props }: SelectDropProps<MultipleType, DataType>) => ReactElement;
4
+ export declare const SelectDrop: <MultipleType extends boolean, DataType extends StaticDataFetcherItem>({ activatorRef, type, name, multiple, applyChangesButton: _applyChangesButton, clearButton: _clearButton, useInitialValuesOnClearAction, loading, renderItem, renderButtonsContainer, visible, optionList, optionsListRef, searchValue, setSearchValue, maxWidth, value: values, onChange, onClose, clearSelectedValues, setInitialValues, isLimitExceeded, plain, searchable, widthEqualToActivator, forceDropVisibleWithEmptyOptions, renderContentBefore, setForcedState, setSelectedValues, maxHeight, onDropClose, onDropOpen, emptyOptionsHint, emptyOptionsSearchHint, onApply, onClear, searchInProgress, internalError, reload, innerErrorTrls, optionDataQa, dropWidth, ...props }: SelectDropProps<MultipleType, DataType>) => ReactElement;
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-1-22","selectDropContainerWrapper":"magritte-select-drop-container-wrapper___OHM0q_12-1-22","select-drop-container":"magritte-select-drop-container___hee1p_12-1-22","selectDropContainer":"magritte-select-drop-container___hee1p_12-1-22","select-drop-container_plain":"magritte-select-drop-container_plain___766zl_12-1-22","selectDropContainerPlain":"magritte-select-drop-container_plain___766zl_12-1-22","select-drop-container_with-footer":"magritte-select-drop-container_with-footer___6wp-L_12-1-22","selectDropContainerWithFooter":"magritte-select-drop-container_with-footer___6wp-L_12-1-22","select-drop":"magritte-select-drop___jn4O-_12-1-22","selectDrop":"magritte-select-drop___jn4O-_12-1-22","select-drop-header":"magritte-select-drop-header___fMmio_12-1-22","selectDropHeader":"magritte-select-drop-header___fMmio_12-1-22","select-drop_plain":"magritte-select-drop_plain___VL8Fz_12-1-22","selectDropPlain":"magritte-select-drop_plain___VL8Fz_12-1-22","label-option":"magritte-label-option___2N7t9_12-1-22","labelOption":"magritte-label-option___2N7t9_12-1-22","loading":"magritte-loading___AMiuq_12-1-22","hint":"magritte-hint___6qaFl_12-1-22"};
24
+ var styles = {"select-drop-container-wrapper":"magritte-select-drop-container-wrapper___OHM0q_12-2-0","selectDropContainerWrapper":"magritte-select-drop-container-wrapper___OHM0q_12-2-0","select-drop-container":"magritte-select-drop-container___hee1p_12-2-0","selectDropContainer":"magritte-select-drop-container___hee1p_12-2-0","select-drop-container_plain":"magritte-select-drop-container_plain___766zl_12-2-0","selectDropContainerPlain":"magritte-select-drop-container_plain___766zl_12-2-0","select-drop-container_with-footer":"magritte-select-drop-container_with-footer___6wp-L_12-2-0","selectDropContainerWithFooter":"magritte-select-drop-container_with-footer___6wp-L_12-2-0","select-drop":"magritte-select-drop___jn4O-_12-2-0","selectDrop":"magritte-select-drop___jn4O-_12-2-0","select-drop-header":"magritte-select-drop-header___fMmio_12-2-0","selectDropHeader":"magritte-select-drop-header___fMmio_12-2-0","select-drop_plain":"magritte-select-drop_plain___VL8Fz_12-2-0","selectDropPlain":"magritte-select-drop_plain___VL8Fz_12-2-0","label-option":"magritte-label-option___2N7t9_12-2-0","labelOption":"magritte-label-option___2N7t9_12-2-0","loading":"magritte-loading___AMiuq_12-2-0","hint":"magritte-hint___6qaFl_12-2-0"};
25
25
 
26
26
  const SelectOptionDefault = ({ data, input, type, plain, checked, }) => {
27
27
  if (type === 'delimiter') {
@@ -38,7 +38,7 @@ const RenderButtonsContainerDefault = ({ applyChangesButton, loading }) => {
38
38
  }
39
39
  return jsx(ActionBar, { primaryActions: applyChangesButton });
40
40
  };
41
- const SelectDrop = ({ activatorRef, type, name, multiple, applyChangesButton: _applyChangesButton, clearButton: _clearButton, useInitialValuesOnClearAction, loading, renderItem = SelectOptionDefault, renderButtonsContainer = RenderButtonsContainerDefault, visible, optionList, optionsListRef, searchValue, setSearchValue, maxWidth, value: values, onChange, onClose, clearSelectedValues, setInitialValues, isLimitExceeded, plain, searchable, widthEqualToActivator, forceDropVisibleWithEmptyOptions, renderContentBefore, setForcedState, setSelectedValues, maxHeight, onDropClose, onDropOpen, emptyOptionsHint, emptyOptionsSearchHint, onApply, onClear, searchInProgress, internalError, reload, innerErrorTrls, optionDataQa, ...props }) => {
41
+ const SelectDrop = ({ activatorRef, type, name, multiple, applyChangesButton: _applyChangesButton, clearButton: _clearButton, useInitialValuesOnClearAction, loading, renderItem = SelectOptionDefault, renderButtonsContainer = RenderButtonsContainerDefault, visible, optionList, optionsListRef, searchValue, setSearchValue, maxWidth, value: values, onChange, onClose, clearSelectedValues, setInitialValues, isLimitExceeded, plain, searchable, widthEqualToActivator, forceDropVisibleWithEmptyOptions, renderContentBefore, setForcedState, setSelectedValues, maxHeight, onDropClose, onDropOpen, emptyOptionsHint, emptyOptionsSearchHint, onApply, onClear, searchInProgress, internalError, reload, innerErrorTrls, optionDataQa, dropWidth, ...props }) => {
42
42
  const closedByKeyboardRef = useRef(false);
43
43
  const handleChange = useCallback((newValue, needToPut) => {
44
44
  onChange(newValue, needToPut);
@@ -111,7 +111,7 @@ const SelectDrop = ({ activatorRef, type, name, multiple, applyChangesButton: _a
111
111
  emptyOptionsHintVisible: emptyOptionsHintVisible || emptySearchOptionsHintVisible,
112
112
  });
113
113
  const haveFooter = Boolean(footer);
114
- return (jsx(Drop, { ...props, ref: optionsListRef, autoFocusWhenOpened: false, maxWidth: maxWidth, visible: (optionList.length > 0 ||
114
+ return (jsx(Drop, { ...props, ref: optionsListRef, autoFocusWhenOpened: false, maxWidth: maxWidth, width: dropWidth, visible: (optionList.length > 0 ||
115
115
  forceDropVisibleWithEmptyOptions ||
116
116
  emptyOptionsHintVisible ||
117
117
  emptySearchOptionsHintVisible ||
package/SelectDrop.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDrop.js","sources":["../src/SelectDrop.tsx"],"sourcesContent":["import { useCallback, ReactElement, cloneElement, ComponentProps, ReactNode, useRef, KeyboardEvent } from 'react';\nimport classnames from 'classnames';\n\nimport { StaticDataFetcherItem } from '@hh.ru/magritte-common-data-provider';\nimport { keyboardKeys, keyboardMatches } from '@hh.ru/magritte-common-keyboard';\nimport { ActionBar } from '@hh.ru/magritte-ui-action-bar/ActionBar';\nimport { Button } from '@hh.ru/magritte-ui-button';\nimport { Cell, CellText } from '@hh.ru/magritte-ui-cell';\nimport { Drop } from '@hh.ru/magritte-ui-drop';\nimport { CheckOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { Loader } from '@hh.ru/magritte-ui-loader';\nimport { SelectError } from '@hh.ru/magritte-ui-select/SelectError';\nimport { SelectOption } from '@hh.ru/magritte-ui-select/SelectOption';\nimport { getChecked } from '@hh.ru/magritte-ui-select/getChecked';\nimport {\n OnChangeAction,\n SelectDropProps,\n RenderOptionTypeProps,\n RenderButtonsContainerProps,\n} from '@hh.ru/magritte-ui-select/types';\n\nimport styles from './select-drop.less';\n\nconst SelectOptionDefault = <DataType extends StaticDataFetcherItem>({\n data,\n input,\n type,\n plain,\n checked,\n}: RenderOptionTypeProps<DataType>): ReactElement => {\n if (type === 'delimiter') {\n return (\n <CellText maxLines={1} style=\"secondary\">\n {data.text}\n </CellText>\n );\n }\n if (type === 'label') {\n return (\n <Cell Element=\"div\" right={checked && plain ? <CheckOutlinedSize24 /> : undefined}>\n <div className={classnames({ [styles.labelOption]: !plain })}>\n <CellText maxLines={1}>{data.text}</CellText>\n </div>\n </Cell>\n );\n }\n return (\n <Cell Element=\"div\" align=\"center\" left={input}>\n <CellText maxLines={1}>{data.text}</CellText>\n </Cell>\n );\n};\n\nconst RenderButtonsContainerDefault = ({ applyChangesButton, loading }: RenderButtonsContainerProps): ReactNode => {\n if (loading || !applyChangesButton) {\n return null;\n }\n return <ActionBar primaryActions={applyChangesButton} />;\n};\n\nexport const SelectDrop = <MultipleType extends boolean, DataType extends StaticDataFetcherItem>({\n activatorRef,\n type,\n name,\n multiple,\n applyChangesButton: _applyChangesButton,\n clearButton: _clearButton,\n useInitialValuesOnClearAction,\n loading,\n renderItem = SelectOptionDefault,\n renderButtonsContainer = RenderButtonsContainerDefault,\n visible,\n optionList,\n optionsListRef,\n searchValue,\n setSearchValue,\n maxWidth,\n value: values,\n onChange,\n onClose,\n clearSelectedValues,\n setInitialValues,\n isLimitExceeded,\n plain,\n searchable,\n widthEqualToActivator,\n forceDropVisibleWithEmptyOptions,\n renderContentBefore,\n setForcedState,\n setSelectedValues,\n maxHeight,\n onDropClose,\n onDropOpen,\n emptyOptionsHint,\n emptyOptionsSearchHint,\n onApply,\n onClear,\n searchInProgress,\n internalError,\n reload,\n innerErrorTrls,\n optionDataQa,\n ...props\n}: SelectDropProps<MultipleType, DataType>): ReactElement => {\n const closedByKeyboardRef = useRef(false);\n const handleChange: OnChangeAction<DataType> = useCallback(\n (newValue, needToPut) => {\n onChange(newValue, needToPut);\n\n if (!multiple) {\n onClose?.();\n }\n\n if (!multiple && closedByKeyboardRef.current) {\n closedByKeyboardRef.current = false;\n setForcedState('focus');\n return;\n }\n\n if (multiple && searchValue) {\n setForcedState('focusAndSelect');\n return;\n }\n closedByKeyboardRef.current = false;\n setForcedState(null);\n },\n [multiple, onChange, onClose, searchValue, setForcedState]\n );\n\n const clearSelectedValuesAndClose = () => {\n if (useInitialValuesOnClearAction) {\n setInitialValues();\n } else {\n clearSelectedValues();\n }\n onClose?.();\n };\n const clearButton =\n _clearButton &&\n cloneElement(_clearButton, {\n key: 'clearButton',\n size: 'medium',\n 'data-qa': 'magritte-select-clear-action',\n onClick: () => {\n clearSelectedValuesAndClose();\n onClear?.();\n },\n } as Partial<ComponentProps<typeof Button>>);\n const needAddChangesButton = multiple && _applyChangesButton;\n const applyChangesButton =\n needAddChangesButton &&\n cloneElement(_applyChangesButton, {\n key: 'applyChangesButton',\n size: 'medium',\n 'data-qa': 'magritte-select-apply',\n onClick: () => {\n setSelectedValues();\n onClose?.();\n onApply?.({ isMobile: false, searchValue });\n },\n } as Partial<ComponentProps<typeof Button>>);\n\n const emptyOptionsHintVisible =\n optionList.length === 0 &&\n !searchValue &&\n !!emptyOptionsHint &&\n !loading &&\n !searchInProgress &&\n !internalError;\n const emptySearchOptionsHintVisible = !!(\n optionList.length === 0 &&\n searchValue &&\n !!emptyOptionsSearchHint &&\n !loading &&\n !searchInProgress &&\n !internalError\n );\n\n const optionsVisible = !loading && !emptySearchOptionsHintVisible && !emptyOptionsHintVisible && !internalError;\n const footer = renderButtonsContainer({\n applyChangesButton,\n clearButton,\n searchValue,\n optionsCount: optionList.length,\n loading,\n isError: Boolean(internalError && innerErrorTrls),\n emptyOptionsHintVisible: emptyOptionsHintVisible || emptySearchOptionsHintVisible,\n });\n const haveFooter = Boolean(footer);\n\n return (\n <Drop\n {...props}\n ref={optionsListRef}\n autoFocusWhenOpened={false}\n maxWidth={maxWidth}\n visible={\n (optionList.length > 0 ||\n forceDropVisibleWithEmptyOptions ||\n emptyOptionsHintVisible ||\n emptySearchOptionsHintVisible ||\n internalError) &&\n visible\n }\n placement={['bottom-left', 'top-left']}\n activatorRef={activatorRef}\n role={searchable ? 'status' : 'listbox'}\n padding={plain ? 24 : 12}\n keyboardNavigationMode=\"list\"\n onClose={() => {\n setForcedState('focus');\n onClose?.();\n }}\n closeByClickOutside={false}\n onKeyDownCapture={(event: KeyboardEvent) => {\n if (keyboardMatches(event.nativeEvent, [keyboardKeys.Enter, keyboardKeys.Space])) {\n closedByKeyboardRef.current = true;\n }\n }}\n widthEqualToActivator={widthEqualToActivator || loading}\n forcePlacement\n footer={footer}\n onAfterExit={onDropClose}\n onAppear={onDropOpen}\n >\n <div className={styles.selectDropContainerWrapper} style={{ maxHeight: `${maxHeight}px` }}>\n <div\n className={classnames(\n styles.selectDropContainer,\n { [styles.selectDropContainerPlain]: plain },\n { [styles.selectDropContainerWithFooter]: haveFooter }\n )}\n >\n {internalError && innerErrorTrls && <SelectError innerErrorTrls={innerErrorTrls} reload={reload} />}\n {emptyOptionsHintVisible && <div className={styles.hint}>{emptyOptionsHint}</div>}\n {emptySearchOptionsHintVisible && <div className={styles.hint}>{emptyOptionsSearchHint}</div>}\n {loading && (\n <div className={styles.loading}>\n <Loader size={24} />\n </div>\n )}\n {optionsVisible && (\n <>\n {renderContentBefore && (\n <div data-qa=\"magritte-select-header\" className={styles.selectDropHeader}>\n {renderContentBefore({\n clearSelectedValuesAndClose,\n searchValue,\n setSearchValue,\n optionsCount: optionList.length,\n })}\n </div>\n )}\n <div\n className={classnames(styles.selectDrop, { [styles.selectDropPlain]: plain })}\n data-qa=\"magritte-select-option-list\"\n >\n {optionList.map((option) => {\n const checked = Boolean(option.data && getChecked(option.data, values ?? []));\n const disabled = !checked && (option.disabled || isLimitExceeded);\n return (\n <SelectOption\n key={option.data.value}\n name={name}\n checked={checked}\n onChange={handleChange}\n render={renderItem}\n disabled={disabled}\n type={option.type || type}\n plain={!!plain}\n multiple={multiple}\n data-qa={optionDataQa}\n data={option.data}\n />\n );\n })}\n </div>\n </>\n )}\n </div>\n </div>\n </Drop>\n );\n};\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,mBAAmB,GAAG,CAAyC,EACjE,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,OAAO,GACuB,KAAkB;AAChD,IAAA,IAAI,IAAI,KAAK,WAAW,EAAE;AACtB,QAAA,QACIA,GAAC,CAAA,QAAQ,EAAC,EAAA,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,WAAW,EACnC,QAAA,EAAA,IAAI,CAAC,IAAI,EAAA,CACH,EACb;KACL;AACD,IAAA,IAAI,IAAI,KAAK,OAAO,EAAE;QAClB,QACIA,GAAC,CAAA,IAAI,EAAC,EAAA,OAAO,EAAC,KAAK,EAAC,KAAK,EAAE,OAAO,IAAI,KAAK,GAAGA,GAAA,CAAC,mBAAmB,EAAA,EAAA,CAAG,GAAG,SAAS,EAC7E,QAAA,EAAAA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,KAAK,EAAE,CAAC,EACxD,QAAA,EAAAA,GAAA,CAAC,QAAQ,EAAC,EAAA,QAAQ,EAAE,CAAC,EAAG,QAAA,EAAA,IAAI,CAAC,IAAI,EAAY,CAAA,EAAA,CAC3C,EACH,CAAA,EACT;KACL;AACD,IAAA,QACIA,GAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAK,EAAA,QAAA,EAC1CA,GAAC,CAAA,QAAQ,EAAC,EAAA,QAAQ,EAAE,CAAC,EAAG,QAAA,EAAA,IAAI,CAAC,IAAI,EAAY,CAAA,EAAA,CAC1C,EACT;AACN,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAA+B,KAAe;AAC9G,IAAA,IAAI,OAAO,IAAI,CAAC,kBAAkB,EAAE;AAChC,QAAA,OAAO,IAAI,CAAC;KACf;AACD,IAAA,OAAOA,IAAC,SAAS,EAAA,EAAC,cAAc,EAAE,kBAAkB,GAAI,CAAC;AAC7D,CAAC,CAAC;MAEW,UAAU,GAAG,CAAuE,EAC7F,YAAY,EACZ,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,kBAAkB,EAAE,mBAAmB,EACvC,WAAW,EAAE,YAAY,EACzB,6BAA6B,EAC7B,OAAO,EACP,UAAU,GAAG,mBAAmB,EAChC,sBAAsB,GAAG,6BAA6B,EACtD,OAAO,EACP,UAAU,EACV,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,EACR,KAAK,EAAE,MAAM,EACb,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,KAAK,EACL,UAAU,EACV,qBAAqB,EACrB,gCAAgC,EAChC,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,cAAc,EACd,YAAY,EACZ,GAAG,KAAK,EAC8B,KAAkB;AACxD,IAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,YAAY,GAA6B,WAAW,CACtD,CAAC,QAAQ,EAAE,SAAS,KAAI;AACpB,QAAA,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE9B,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,IAAI,CAAC;SACf;AAED,QAAA,IAAI,CAAC,QAAQ,IAAI,mBAAmB,CAAC,OAAO,EAAE;AAC1C,YAAA,mBAAmB,CAAC,OAAO,GAAG,KAAK,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,OAAO;SACV;AAED,QAAA,IAAI,QAAQ,IAAI,WAAW,EAAE;YACzB,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACjC,OAAO;SACV;AACD,QAAA,mBAAmB,CAAC,OAAO,GAAG,KAAK,CAAC;QACpC,cAAc,CAAC,IAAI,CAAC,CAAC;AACzB,KAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAC7D,CAAC;IAEF,MAAM,2BAA2B,GAAG,MAAK;QACrC,IAAI,6BAA6B,EAAE;AAC/B,YAAA,gBAAgB,EAAE,CAAC;SACtB;aAAM;AACH,YAAA,mBAAmB,EAAE,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;AAChB,KAAC,CAAC;IACF,MAAM,WAAW,GACb,YAAY;QACZ,YAAY,CAAC,YAAY,EAAE;AACvB,YAAA,GAAG,EAAE,aAAa;AAClB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,SAAS,EAAE,8BAA8B;YACzC,OAAO,EAAE,MAAK;AACV,gBAAA,2BAA2B,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;aACf;AACsC,SAAA,CAAC,CAAC;AACjD,IAAA,MAAM,oBAAoB,GAAG,QAAQ,IAAI,mBAAmB,CAAC;IAC7D,MAAM,kBAAkB,GACpB,oBAAoB;QACpB,YAAY,CAAC,mBAAmB,EAAE;AAC9B,YAAA,GAAG,EAAE,oBAAoB;AACzB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE,MAAK;AACV,gBAAA,iBAAiB,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC;gBACZ,OAAO,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;aAC/C;AACsC,SAAA,CAAC,CAAC;AAEjD,IAAA,MAAM,uBAAuB,GACzB,UAAU,CAAC,MAAM,KAAK,CAAC;AACvB,QAAA,CAAC,WAAW;AACZ,QAAA,CAAC,CAAC,gBAAgB;AAClB,QAAA,CAAC,OAAO;AACR,QAAA,CAAC,gBAAgB;AACjB,QAAA,CAAC,aAAa,CAAC;IACnB,MAAM,6BAA6B,GAAG,CAAC,EACnC,UAAU,CAAC,MAAM,KAAK,CAAC;QACvB,WAAW;AACX,QAAA,CAAC,CAAC,sBAAsB;AACxB,QAAA,CAAC,OAAO;AACR,QAAA,CAAC,gBAAgB;QACjB,CAAC,aAAa,CACjB,CAAC;AAEF,IAAA,MAAM,cAAc,GAAG,CAAC,OAAO,IAAI,CAAC,6BAA6B,IAAI,CAAC,uBAAuB,IAAI,CAAC,aAAa,CAAC;IAChH,MAAM,MAAM,GAAG,sBAAsB,CAAC;QAClC,kBAAkB;QAClB,WAAW;QACX,WAAW;QACX,YAAY,EAAE,UAAU,CAAC,MAAM;QAC/B,OAAO;AACP,QAAA,OAAO,EAAE,OAAO,CAAC,aAAa,IAAI,cAAc,CAAC;QACjD,uBAAuB,EAAE,uBAAuB,IAAI,6BAA6B;AACpF,KAAA,CAAC,CAAC;AACH,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,QACIA,GAAC,CAAA,IAAI,EACG,EAAA,GAAA,KAAK,EACT,GAAG,EAAE,cAAc,EACnB,mBAAmB,EAAE,KAAK,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EACH,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAClB,gCAAgC;YAChC,uBAAuB;YACvB,6BAA6B;AAC7B,YAAA,aAAa;YACjB,OAAO,EAEX,SAAS,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,EACtC,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,EACvC,OAAO,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,EACxB,sBAAsB,EAAC,MAAM,EAC7B,OAAO,EAAE,MAAK;YACV,cAAc,CAAC,OAAO,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;SACf,EACD,mBAAmB,EAAE,KAAK,EAC1B,gBAAgB,EAAE,CAAC,KAAoB,KAAI;AACvC,YAAA,IAAI,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9E,gBAAA,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC;aACtC;AACL,SAAC,EACD,qBAAqB,EAAE,qBAAqB,IAAI,OAAO,EACvD,cAAc,EAAA,IAAA,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,UAAU,EAEpB,QAAA,EAAAA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAG,EAAA,SAAS,CAAI,EAAA,CAAA,EAAE,EACrF,QAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,UAAU,CACjB,MAAM,CAAC,mBAAmB,EAC1B,EAAE,CAAC,MAAM,CAAC,wBAAwB,GAAG,KAAK,EAAE,EAC5C,EAAE,CAAC,MAAM,CAAC,6BAA6B,GAAG,UAAU,EAAE,CACzD,EAEA,QAAA,EAAA,CAAA,aAAa,IAAI,cAAc,IAAID,GAAC,CAAA,WAAW,EAAC,EAAA,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAA,CAAI,EAClG,uBAAuB,IAAIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAG,QAAA,EAAA,gBAAgB,EAAO,CAAA,EAChF,6BAA6B,IAAIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAG,QAAA,EAAA,sBAAsB,GAAO,EAC5F,OAAO,KACJA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EAC1BA,GAAC,CAAA,MAAM,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAClB,CACT,EACA,cAAc,KACXC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACK,mBAAmB,KAChBF,GAAa,CAAA,KAAA,EAAA,EAAA,SAAA,EAAA,wBAAwB,EAAC,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAA,QAAA,EACnE,mBAAmB,CAAC;oCACjB,2BAA2B;oCAC3B,WAAW;oCACX,cAAc;oCACd,YAAY,EAAE,UAAU,CAAC,MAAM;AAClC,iCAAA,CAAC,EACA,CAAA,CACT,EACDA,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,GAAG,KAAK,EAAE,CAAC,aACrE,6BAA6B,EAAA,QAAA,EAEpC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AACvB,oCAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9E,oCAAA,MAAM,QAAQ,GAAG,CAAC,OAAO,KAAK,MAAM,CAAC,QAAQ,IAAI,eAAe,CAAC,CAAC;oCAClE,QACIA,GAAC,CAAA,YAAY,EAET,EAAA,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,EACzB,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,QAAQ,EAAE,QAAQ,EACT,SAAA,EAAA,YAAY,EACrB,IAAI,EAAE,MAAM,CAAC,IAAI,EAVZ,EAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAWxB,EACJ;iCACL,CAAC,GACA,CACP,EAAA,CAAA,CACN,IACC,EACJ,CAAA,EAAA,CACH,EACT;AACN;;;;"}
1
+ {"version":3,"file":"SelectDrop.js","sources":["../src/SelectDrop.tsx"],"sourcesContent":["import { useCallback, ReactElement, cloneElement, ComponentProps, ReactNode, useRef, KeyboardEvent } from 'react';\nimport classnames from 'classnames';\n\nimport { StaticDataFetcherItem } from '@hh.ru/magritte-common-data-provider';\nimport { keyboardKeys, keyboardMatches } from '@hh.ru/magritte-common-keyboard';\nimport { ActionBar } from '@hh.ru/magritte-ui-action-bar/ActionBar';\nimport { Button } from '@hh.ru/magritte-ui-button';\nimport { Cell, CellText } from '@hh.ru/magritte-ui-cell';\nimport { Drop } from '@hh.ru/magritte-ui-drop';\nimport { CheckOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { Loader } from '@hh.ru/magritte-ui-loader';\nimport { SelectError } from '@hh.ru/magritte-ui-select/SelectError';\nimport { SelectOption } from '@hh.ru/magritte-ui-select/SelectOption';\nimport { getChecked } from '@hh.ru/magritte-ui-select/getChecked';\nimport {\n OnChangeAction,\n SelectDropProps,\n RenderOptionTypeProps,\n RenderButtonsContainerProps,\n} from '@hh.ru/magritte-ui-select/types';\n\nimport styles from './select-drop.less';\n\nconst SelectOptionDefault = <DataType extends StaticDataFetcherItem>({\n data,\n input,\n type,\n plain,\n checked,\n}: RenderOptionTypeProps<DataType>): ReactElement => {\n if (type === 'delimiter') {\n return (\n <CellText maxLines={1} style=\"secondary\">\n {data.text}\n </CellText>\n );\n }\n if (type === 'label') {\n return (\n <Cell Element=\"div\" right={checked && plain ? <CheckOutlinedSize24 /> : undefined}>\n <div className={classnames({ [styles.labelOption]: !plain })}>\n <CellText maxLines={1}>{data.text}</CellText>\n </div>\n </Cell>\n );\n }\n return (\n <Cell Element=\"div\" align=\"center\" left={input}>\n <CellText maxLines={1}>{data.text}</CellText>\n </Cell>\n );\n};\n\nconst RenderButtonsContainerDefault = ({ applyChangesButton, loading }: RenderButtonsContainerProps): ReactNode => {\n if (loading || !applyChangesButton) {\n return null;\n }\n return <ActionBar primaryActions={applyChangesButton} />;\n};\n\nexport const SelectDrop = <MultipleType extends boolean, DataType extends StaticDataFetcherItem>({\n activatorRef,\n type,\n name,\n multiple,\n applyChangesButton: _applyChangesButton,\n clearButton: _clearButton,\n useInitialValuesOnClearAction,\n loading,\n renderItem = SelectOptionDefault,\n renderButtonsContainer = RenderButtonsContainerDefault,\n visible,\n optionList,\n optionsListRef,\n searchValue,\n setSearchValue,\n maxWidth,\n value: values,\n onChange,\n onClose,\n clearSelectedValues,\n setInitialValues,\n isLimitExceeded,\n plain,\n searchable,\n widthEqualToActivator,\n forceDropVisibleWithEmptyOptions,\n renderContentBefore,\n setForcedState,\n setSelectedValues,\n maxHeight,\n onDropClose,\n onDropOpen,\n emptyOptionsHint,\n emptyOptionsSearchHint,\n onApply,\n onClear,\n searchInProgress,\n internalError,\n reload,\n innerErrorTrls,\n optionDataQa,\n dropWidth,\n ...props\n}: SelectDropProps<MultipleType, DataType>): ReactElement => {\n const closedByKeyboardRef = useRef(false);\n const handleChange: OnChangeAction<DataType> = useCallback(\n (newValue, needToPut) => {\n onChange(newValue, needToPut);\n\n if (!multiple) {\n onClose?.();\n }\n\n if (!multiple && closedByKeyboardRef.current) {\n closedByKeyboardRef.current = false;\n setForcedState('focus');\n return;\n }\n\n if (multiple && searchValue) {\n setForcedState('focusAndSelect');\n return;\n }\n closedByKeyboardRef.current = false;\n setForcedState(null);\n },\n [multiple, onChange, onClose, searchValue, setForcedState]\n );\n\n const clearSelectedValuesAndClose = () => {\n if (useInitialValuesOnClearAction) {\n setInitialValues();\n } else {\n clearSelectedValues();\n }\n onClose?.();\n };\n const clearButton =\n _clearButton &&\n cloneElement(_clearButton, {\n key: 'clearButton',\n size: 'medium',\n 'data-qa': 'magritte-select-clear-action',\n onClick: () => {\n clearSelectedValuesAndClose();\n onClear?.();\n },\n } as Partial<ComponentProps<typeof Button>>);\n const needAddChangesButton = multiple && _applyChangesButton;\n const applyChangesButton =\n needAddChangesButton &&\n cloneElement(_applyChangesButton, {\n key: 'applyChangesButton',\n size: 'medium',\n 'data-qa': 'magritte-select-apply',\n onClick: () => {\n setSelectedValues();\n onClose?.();\n onApply?.({ isMobile: false, searchValue });\n },\n } as Partial<ComponentProps<typeof Button>>);\n\n const emptyOptionsHintVisible =\n optionList.length === 0 &&\n !searchValue &&\n !!emptyOptionsHint &&\n !loading &&\n !searchInProgress &&\n !internalError;\n const emptySearchOptionsHintVisible = !!(\n optionList.length === 0 &&\n searchValue &&\n !!emptyOptionsSearchHint &&\n !loading &&\n !searchInProgress &&\n !internalError\n );\n\n const optionsVisible = !loading && !emptySearchOptionsHintVisible && !emptyOptionsHintVisible && !internalError;\n const footer = renderButtonsContainer({\n applyChangesButton,\n clearButton,\n searchValue,\n optionsCount: optionList.length,\n loading,\n isError: Boolean(internalError && innerErrorTrls),\n emptyOptionsHintVisible: emptyOptionsHintVisible || emptySearchOptionsHintVisible,\n });\n const haveFooter = Boolean(footer);\n\n return (\n <Drop\n {...props}\n ref={optionsListRef}\n autoFocusWhenOpened={false}\n maxWidth={maxWidth}\n width={dropWidth}\n visible={\n (optionList.length > 0 ||\n forceDropVisibleWithEmptyOptions ||\n emptyOptionsHintVisible ||\n emptySearchOptionsHintVisible ||\n internalError) &&\n visible\n }\n placement={['bottom-left', 'top-left']}\n activatorRef={activatorRef}\n role={searchable ? 'status' : 'listbox'}\n padding={plain ? 24 : 12}\n keyboardNavigationMode=\"list\"\n onClose={() => {\n setForcedState('focus');\n onClose?.();\n }}\n closeByClickOutside={false}\n onKeyDownCapture={(event: KeyboardEvent) => {\n if (keyboardMatches(event.nativeEvent, [keyboardKeys.Enter, keyboardKeys.Space])) {\n closedByKeyboardRef.current = true;\n }\n }}\n widthEqualToActivator={widthEqualToActivator || loading}\n forcePlacement\n footer={footer}\n onAfterExit={onDropClose}\n onAppear={onDropOpen}\n >\n <div className={styles.selectDropContainerWrapper} style={{ maxHeight: `${maxHeight}px` }}>\n <div\n className={classnames(\n styles.selectDropContainer,\n { [styles.selectDropContainerPlain]: plain },\n { [styles.selectDropContainerWithFooter]: haveFooter }\n )}\n >\n {internalError && innerErrorTrls && <SelectError innerErrorTrls={innerErrorTrls} reload={reload} />}\n {emptyOptionsHintVisible && <div className={styles.hint}>{emptyOptionsHint}</div>}\n {emptySearchOptionsHintVisible && <div className={styles.hint}>{emptyOptionsSearchHint}</div>}\n {loading && (\n <div className={styles.loading}>\n <Loader size={24} />\n </div>\n )}\n {optionsVisible && (\n <>\n {renderContentBefore && (\n <div data-qa=\"magritte-select-header\" className={styles.selectDropHeader}>\n {renderContentBefore({\n clearSelectedValuesAndClose,\n searchValue,\n setSearchValue,\n optionsCount: optionList.length,\n })}\n </div>\n )}\n <div\n className={classnames(styles.selectDrop, { [styles.selectDropPlain]: plain })}\n data-qa=\"magritte-select-option-list\"\n >\n {optionList.map((option) => {\n const checked = Boolean(option.data && getChecked(option.data, values ?? []));\n const disabled = !checked && (option.disabled || isLimitExceeded);\n return (\n <SelectOption\n key={option.data.value}\n name={name}\n checked={checked}\n onChange={handleChange}\n render={renderItem}\n disabled={disabled}\n type={option.type || type}\n plain={!!plain}\n multiple={multiple}\n data-qa={optionDataQa}\n data={option.data}\n />\n );\n })}\n </div>\n </>\n )}\n </div>\n </div>\n </Drop>\n );\n};\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -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-1-22","selectEmptyHint":"magritte-select-empty-hint___B39XJ_12-1-22","icon":"magritte-icon___F0GQx_12-1-22","icon-init":"magritte-icon-init___GWK-V_12-1-22","iconInit":"magritte-icon-init___GWK-V_12-1-22","icon-search":"magritte-icon-search___ZsqO-_12-1-22","iconSearch":"magritte-icon-search___ZsqO-_12-1-22"};
9
+ var styles = {"select-empty-hint":"magritte-select-empty-hint___B39XJ_12-2-0","selectEmptyHint":"magritte-select-empty-hint___B39XJ_12-2-0","icon":"magritte-icon___F0GQx_12-2-0","icon-init":"magritte-icon-init___GWK-V_12-2-0","iconInit":"magritte-icon-init___GWK-V_12-2-0","icon-search":"magritte-icon-search___ZsqO-_12-2-0","iconSearch":"magritte-icon-search___ZsqO-_12-2-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-1-22","errorContainer":"magritte-error-container___t9B5w_12-1-22"};
10
+ var styles = {"error-container":"magritte-error-container___t9B5w_12-2-0","errorContainer":"magritte-error-container___t9B5w_12-2-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-1-22","selectModalWrapper":"magritte-select-modal-wrapper___5BhtC_12-1-22","select-modal":"magritte-select-modal___f9wc6_12-1-22","selectModal":"magritte-select-modal___f9wc6_12-1-22","select-modal_plain":"magritte-select-modal_plain___0rP39_12-1-22","selectModalPlain":"magritte-select-modal_plain___0rP39_12-1-22","label-option":"magritte-label-option___kFAuR_12-1-22","labelOption":"magritte-label-option___kFAuR_12-1-22","layer-full-height":"magritte-layer-full-height___cJX-K_12-1-22","layerFullHeight":"magritte-layer-full-height___cJX-K_12-1-22"};
26
+ var styles = {"select-modal-wrapper":"magritte-select-modal-wrapper___5BhtC_12-2-0","selectModalWrapper":"magritte-select-modal-wrapper___5BhtC_12-2-0","select-modal":"magritte-select-modal___f9wc6_12-2-0","selectModal":"magritte-select-modal___f9wc6_12-2-0","select-modal_plain":"magritte-select-modal_plain___0rP39_12-2-0","selectModalPlain":"magritte-select-modal_plain___0rP39_12-2-0","label-option":"magritte-label-option___kFAuR_12-2-0","labelOption":"magritte-label-option___kFAuR_12-2-0","layer-full-height":"magritte-layer-full-height___cJX-K_12-2-0","layerFullHeight":"magritte-layer-full-height___cJX-K_12-2-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-1-22","selectOptionPlain":"magritte-select-option-plain___dfz4a_12-1-22","select-option-plain_active":"magritte-select-option-plain_active___AQSQS_12-1-22","selectOptionPlainActive":"magritte-select-option-plain_active___AQSQS_12-1-22","select-delimiter":"magritte-select-delimiter___WyeR6_12-1-22","selectDelimiter":"magritte-select-delimiter___WyeR6_12-1-22"};
11
+ var styles = {"select-option-plain":"magritte-select-option-plain___dfz4a_12-2-0","selectOptionPlain":"magritte-select-option-plain___dfz4a_12-2-0","select-option-plain_active":"magritte-select-option-plain_active___AQSQS_12-2-0","selectOptionPlainActive":"magritte-select-option-plain_active___AQSQS_12-2-0","select-delimiter":"magritte-select-delimiter___WyeR6_12-2-0","selectDelimiter":"magritte-select-delimiter___WyeR6_12-2-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-22{
1
+ .magritte-error-container___t9B5w_12-2-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-1-22{
9
+ body.magritte-old-layout .magritte-error-container___t9B5w_12-2-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-1-22{
15
+ body:not(.magritte-old-layout) .magritte-error-container___t9B5w_12-2-0{
16
16
  min-height:320px;
17
17
  height:auto;
18
18
  }
19
19
  }
20
20
 
21
- .magritte-select-option-plain___dfz4a_12-1-22:hover{
21
+ .magritte-select-option-plain___dfz4a_12-2-0:hover{
22
22
  cursor:default;
23
23
  }
24
- .magritte-select-option-plain_active___AQSQS_12-1-22:hover{
24
+ .magritte-select-option-plain_active___AQSQS_12-2-0:hover{
25
25
  cursor:pointer;
26
26
  }
27
- .magritte-select-delimiter___WyeR6_12-1-22{
27
+ .magritte-select-delimiter___WyeR6_12-2-0{
28
28
  padding-left:16px;
29
29
  padding-top:12px;
30
30
  }
31
31
 
32
- .magritte-select-bottom-sheet___1RZDJ_12-1-22{
32
+ .magritte-select-bottom-sheet___1RZDJ_12-2-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-1-22,
39
- .magritte-select-bottom-sheet_radio___qvFFV_12-1-22{
38
+ .magritte-select-bottom-sheet_checkbox___hwTgo_12-2-0,
39
+ .magritte-select-bottom-sheet_radio___qvFFV_12-2-0{
40
40
  gap:12px;
41
41
  }
42
- .magritte-select-bottom-sheet_without-header___KOKVh_12-1-22{
42
+ .magritte-select-bottom-sheet_without-header___KOKVh_12-2-0{
43
43
  padding-top:16px;
44
44
  }
45
- .magritte-full-screen-placeholder___zPC8k_12-1-22{
45
+ .magritte-full-screen-placeholder___zPC8k_12-2-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-1-22{
52
+ .magritte-error-wrapper___P7jYg_12-2-0{
53
53
  height:100%;
54
54
  }
55
55
 
56
- .magritte-select-drop-container-wrapper___OHM0q_12-1-22{
56
+ .magritte-select-drop-container-wrapper___OHM0q_12-2-0{
57
57
  display:flex;
58
58
  flex-direction:column;
59
59
  }
60
- .magritte-select-drop-container___hee1p_12-1-22{
60
+ .magritte-select-drop-container___hee1p_12-2-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-1-22{
66
+ .magritte-select-drop-container_plain___766zl_12-2-0{
67
67
  padding:24px;
68
68
  margin:calc(-1 * 24px);
69
69
  }
70
- .magritte-select-drop-container_with-footer___6wp-L_12-1-22{
70
+ .magritte-select-drop-container_with-footer___6wp-L_12-2-0{
71
71
  margin-bottom:0;
72
72
  padding-bottom:0;
73
73
  }
74
- .magritte-select-drop___jn4O-_12-1-22{
74
+ .magritte-select-drop___jn4O-_12-2-0{
75
75
  display:flex;
76
76
  flex-direction:column;
77
77
  gap:8px;
78
78
  }
79
- .magritte-select-drop-header___fMmio_12-1-22{
79
+ .magritte-select-drop-header___fMmio_12-2-0{
80
80
  display:flex;
81
81
  flex-direction:column;
82
82
  margin-bottom:8px;
83
83
  }
84
- .magritte-select-drop_plain___VL8Fz_12-1-22{
84
+ .magritte-select-drop_plain___VL8Fz_12-2-0{
85
85
  gap:16px;
86
86
  }
87
- .magritte-label-option___2N7t9_12-1-22{
87
+ .magritte-label-option___2N7t9_12-2-0{
88
88
  display:flex;
89
89
  justify-content:center;
90
90
  }
91
- .magritte-loading___AMiuq_12-1-22{
91
+ .magritte-loading___AMiuq_12-2-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-1-22{
97
+ .magritte-hint___6qaFl_12-2-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-1-22{
105
+ .magritte-select-modal-wrapper___5BhtC_12-2-0{
106
106
  display:flex;
107
107
  flex-direction:column;
108
108
  flex-grow:1;
109
109
  }
110
- .magritte-select-modal___f9wc6_12-1-22{
110
+ .magritte-select-modal___f9wc6_12-2-0{
111
111
  display:flex;
112
112
  flex-direction:column;
113
113
  gap:12px;
114
114
  }
115
- .magritte-select-modal_plain___0rP39_12-1-22{
115
+ .magritte-select-modal_plain___0rP39_12-2-0{
116
116
  gap:0;
117
117
  }
118
- .magritte-label-option___kFAuR_12-1-22{
118
+ .magritte-label-option___kFAuR_12-2-0{
119
119
  display:flex;
120
120
  justify-content:center;
121
121
  }
122
- .magritte-layer-full-height___cJX-K_12-1-22{
122
+ .magritte-layer-full-height___cJX-K_12-2-0{
123
123
  display:flex;
124
124
  flex-direction:column;
125
125
  align-items:center;
@@ -147,14 +147,14 @@
147
147
  --magritte-color-icon-tertiary-v23-2-2:#DCE3EB;
148
148
  --magritte-color-icon-accent-v23-2-2:#7195AF;
149
149
  }
150
- .magritte-select-empty-hint___B39XJ_12-1-22{
150
+ .magritte-select-empty-hint___B39XJ_12-2-0{
151
151
  display:flex;
152
152
  flex-direction:column;
153
153
  justify-content:center;
154
154
  align-content:center;
155
155
  align-items:center;
156
156
  }
157
- .magritte-icon___F0GQx_12-1-22{
157
+ .magritte-icon___F0GQx_12-2-0{
158
158
  display:flex;
159
159
  align-items:center;
160
160
  justify-content:center;
@@ -162,11 +162,11 @@
162
162
  height:48px;
163
163
  border-radius:50%;
164
164
  }
165
- .magritte-icon-init___GWK-V_12-1-22{
165
+ .magritte-icon-init___GWK-V_12-2-0{
166
166
  background-color:var(--magritte-color-background-accent-secondary-v23-2-2);
167
167
  --magritte-ui-icon-color-override:var(--magritte-color-icon-accent-v23-2-2);
168
168
  }
169
- .magritte-icon-search___ZsqO-_12-1-22{
169
+ .magritte-icon-search___ZsqO-_12-2-0{
170
170
  background-color:var(--magritte-color-background-secondary-v23-2-2);
171
171
  --magritte-ui-icon-color-override:var(--magritte-color-icon-tertiary-v23-2-2);
172
172
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-select",
3
- "version": "12.1.22",
3
+ "version": "12.2.0",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -32,24 +32,24 @@
32
32
  "@hh.ru/magritte-common-use-disabled": "1.0.13",
33
33
  "@hh.ru/magritte-common-use-multiple-refs": "1.1.9",
34
34
  "@hh.ru/magritte-design-tokens": "23.2.2",
35
- "@hh.ru/magritte-ui-action-bar": "5.0.7",
36
- "@hh.ru/magritte-ui-bottom-sheet": "8.2.6",
35
+ "@hh.ru/magritte-ui-action-bar": "5.0.9",
36
+ "@hh.ru/magritte-ui-bottom-sheet": "8.2.8",
37
37
  "@hh.ru/magritte-ui-breakpoint": "6.0.1",
38
- "@hh.ru/magritte-ui-button": "6.0.10",
39
- "@hh.ru/magritte-ui-button-stack": "2.1.80",
40
- "@hh.ru/magritte-ui-cell": "7.0.4",
41
- "@hh.ru/magritte-ui-checkable-card": "4.1.4",
42
- "@hh.ru/magritte-ui-checkbox-radio": "4.0.10",
43
- "@hh.ru/magritte-ui-drop": "11.1.4",
44
- "@hh.ru/magritte-ui-icon": "12.3.4",
45
- "@hh.ru/magritte-ui-input": "9.0.12",
46
- "@hh.ru/magritte-ui-loader": "2.0.9",
47
- "@hh.ru/magritte-ui-modal": "9.2.4",
48
- "@hh.ru/magritte-ui-navigation-bar": "10.0.13",
38
+ "@hh.ru/magritte-ui-button": "6.0.11",
39
+ "@hh.ru/magritte-ui-button-stack": "2.1.81",
40
+ "@hh.ru/magritte-ui-cell": "7.0.5",
41
+ "@hh.ru/magritte-ui-checkable-card": "4.1.5",
42
+ "@hh.ru/magritte-ui-checkbox-radio": "4.0.11",
43
+ "@hh.ru/magritte-ui-drop": "11.1.6",
44
+ "@hh.ru/magritte-ui-icon": "12.3.5",
45
+ "@hh.ru/magritte-ui-input": "9.1.0",
46
+ "@hh.ru/magritte-ui-loader": "2.0.10",
47
+ "@hh.ru/magritte-ui-modal": "9.2.6",
48
+ "@hh.ru/magritte-ui-navigation-bar": "10.0.14",
49
49
  "@hh.ru/magritte-ui-spacing": "2.0.63",
50
- "@hh.ru/magritte-ui-title": "7.0.8",
51
- "@hh.ru/magritte-ui-trigger": "4.0.12",
52
- "@hh.ru/magritte-ui-typography": "4.2.3"
50
+ "@hh.ru/magritte-ui-title": "7.0.9",
51
+ "@hh.ru/magritte-ui-trigger": "4.0.13",
52
+ "@hh.ru/magritte-ui-typography": "4.2.4"
53
53
  },
54
- "gitHead": "e8f2bc1fe587fea5bd4e48d56c31250aa1c9e69d"
54
+ "gitHead": "15abe7ba2bc392ac808d2056c5571253286d099e"
55
55
  }
package/types.d.ts CHANGED
@@ -234,6 +234,8 @@ interface ExternalSelectDropProps {
234
234
  maxWidth?: number;
235
235
  /** Флаг включающий автоматическое выставление ширины равной ширине активатора */
236
236
  widthEqualToActivator?: boolean;
237
+ /** Фиксированая ширина Drop, при указании настройка maxWidth игнорируется */
238
+ dropWidth?: number;
237
239
  /** Render функция для Control в Drop */
238
240
  renderContentBefore?: RenderContentBefore;
239
241
  /** Максимальная высота выпадающего блока для desktop */