@hh.ru/magritte-ui-select 8.6.0 → 8.6.1

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.
@@ -18,7 +18,7 @@ import '@hh.ru/magritte-ui-checkable-card/CheckableCardElement';
18
18
  import '@hh.ru/magritte-ui-checkbox-radio';
19
19
  import '@hh.ru/magritte-ui-typography';
20
20
 
21
- var styles = {"select-bottom-sheet":"magritte-select-bottom-sheet___1RZDJ_8-6-0","selectBottomSheet":"magritte-select-bottom-sheet___1RZDJ_8-6-0","select-bottom-sheet_checkbox":"magritte-select-bottom-sheet_checkbox___hwTgo_8-6-0","selectBottomSheetCheckbox":"magritte-select-bottom-sheet_checkbox___hwTgo_8-6-0","select-bottom-sheet_radio":"magritte-select-bottom-sheet_radio___qvFFV_8-6-0","selectBottomSheetRadio":"magritte-select-bottom-sheet_radio___qvFFV_8-6-0","loading":"magritte-loading___VpU1J_8-6-0","error-wrapper":"magritte-error-wrapper___P7jYg_8-6-0","errorWrapper":"magritte-error-wrapper___P7jYg_8-6-0"};
21
+ var styles = {"select-bottom-sheet":"magritte-select-bottom-sheet___1RZDJ_8-6-1","selectBottomSheet":"magritte-select-bottom-sheet___1RZDJ_8-6-1","select-bottom-sheet_checkbox":"magritte-select-bottom-sheet_checkbox___hwTgo_8-6-1","selectBottomSheetCheckbox":"magritte-select-bottom-sheet_checkbox___hwTgo_8-6-1","select-bottom-sheet_radio":"magritte-select-bottom-sheet_radio___qvFFV_8-6-1","selectBottomSheetRadio":"magritte-select-bottom-sheet_radio___qvFFV_8-6-1","loading":"magritte-loading___VpU1J_8-6-1","error-wrapper":"magritte-error-wrapper___P7jYg_8-6-1","errorWrapper":"magritte-error-wrapper___P7jYg_8-6-1"};
22
22
 
23
23
  const SelectOptionDefault = ({ label, input, type }) => {
24
24
  if (type === 'delimiter') {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectBottomSheet.js","sources":["../src/SelectBottomSheet.tsx"],"sourcesContent":["import { useCallback, ReactElement, ReactNode, cloneElement, useState, ComponentProps } from 'react';\nimport classnames from 'classnames';\n\nimport { keyboardKeys, keyboardMatch } from '@hh.ru/magritte-common-keyboard';\nimport { Action } from '@hh.ru/magritte-ui-action';\nimport { ActionBar } from '@hh.ru/magritte-ui-action-bar';\nimport { BottomSheet, BottomSheetFooter } from '@hh.ru/magritte-ui-bottom-sheet';\nimport { Button } from '@hh.ru/magritte-ui-button';\nimport { ButtonElement } from '@hh.ru/magritte-ui-button-stack';\nimport { Cell, CellText } from '@hh.ru/magritte-ui-cell';\nimport { CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { SearchInput } from '@hh.ru/magritte-ui-input';\nimport { Loader } from '@hh.ru/magritte-ui-loader';\nimport { NavigationBar } from '@hh.ru/magritte-ui-navigation-bar';\nimport { SelectOption } from '@hh.ru/magritte-ui-select/SelectOption';\nimport { getChecked } from '@hh.ru/magritte-ui-select/getChecked';\nimport { isArraysEquals } from '@hh.ru/magritte-ui-select/isArraysEquals';\nimport {\n OnChangeAction,\n SelectButtons,\n SelectBottomSheetProps,\n RenderOptionTypeProps,\n RenderHeaderProps,\n} from '@hh.ru/magritte-ui-select/types';\n\nimport styles from './select-bottom-sheet.less';\n\nconst SelectOptionDefault = <DataType,>({ label, input, type }: RenderOptionTypeProps<DataType>): ReactElement => {\n if (type === 'delimiter') {\n return (\n <CellText maxLines={1} style=\"secondary\">\n {label}\n </CellText>\n );\n }\n if (type === 'label') {\n return <CellText maxLines={1}>{label}</CellText>;\n }\n return (\n <Cell Element=\"div\" align=\"center\" right={input}>\n <CellText maxLines={1}>{label}</CellText>\n </Cell>\n );\n};\n\nconst RenderButtonsContainerDefault = ({ clearButton, applyChangesButton }: SelectButtons): ReactNode => {\n const primaryActions = [clearButton, applyChangesButton].filter(Boolean);\n return <ActionBar type=\"mobile\" primaryActions={primaryActions as ButtonElement[]} />;\n};\n\nconst RenderHeaderDefault = ({\n onCloseBottomSheet,\n searchValue,\n setSearchValue,\n searchable,\n headerTitle,\n onSearchSubmit,\n optionsCount,\n onCloseBottomSheetWithUpdateValues,\n}: RenderHeaderProps): ReactNode => {\n return (\n <NavigationBar\n title={headerTitle}\n right={\n <Action\n icon={CrossOutlinedSize24}\n onClick={onCloseBottomSheet}\n data-qa=\"select-bottom-sheet-navigation-close\"\n />\n }\n options={\n searchable && (\n <SearchInput\n clearable\n size=\"medium\"\n value={searchValue}\n onChange={setSearchValue}\n onKeyDown={(event) => {\n if (onSearchSubmit && keyboardMatch(event.nativeEvent, keyboardKeys.Enter)) {\n onSearchSubmit(\n event,\n onCloseBottomSheet,\n optionsCount,\n onCloseBottomSheetWithUpdateValues\n );\n }\n }}\n data-qa=\"bottom-sheet-navigation-input\"\n autoComplete=\"off\"\n />\n )\n }\n />\n );\n};\n\nexport const SelectBottomSheet = <MultipleType extends boolean, DataType>({\n type,\n name,\n multiple,\n clearButton: _clearButton,\n applyChangesButton: _applyChangesButton,\n useInitialValuesOnClearAction,\n loading,\n error,\n renderHeader = RenderHeaderDefault,\n renderItem = SelectOptionDefault,\n renderButtonsContainer = RenderButtonsContainerDefault,\n renderAlertOnExitWithoutSaving,\n headerTitle,\n onClose,\n visible,\n optionList,\n optionsListRef,\n searchValue,\n setSearchValue,\n searchable,\n value: values,\n onChange,\n clearSelectedValues,\n setInitialValues,\n isLimitExceeded,\n initialValuesOnOpening,\n setSelectedValues,\n onBottomSheetOpen,\n onBottomSheetClose,\n onSearchSubmit,\n onApply,\n onClear,\n ...props\n}: SelectBottomSheetProps<MultipleType, DataType>): ReactElement => {\n const [alertVisible, setAlertVisible] = useState(false);\n const onCloseAlert = () => setAlertVisible(false);\n const showAlertOnExitWithoutSaving = Boolean(renderAlertOnExitWithoutSaving);\n const showErrorPlaceholder = Boolean(error);\n\n const onCloseWithAlertCheck = () => {\n if (showAlertOnExitWithoutSaving && multiple) {\n const haveUnsavingChanges = !isArraysEquals<string>(\n initialValuesOnOpening.current as string[],\n values as string[]\n );\n if (haveUnsavingChanges) {\n setAlertVisible(true);\n } else {\n onClose();\n }\n } else {\n onClose();\n }\n };\n\n const clearButton =\n _clearButton &&\n cloneElement(_clearButton, {\n key: 'clearButton',\n size: 'medium',\n 'data-qa': 'magritte-select-clear-action-on-xs',\n onClick: () => {\n if (useInitialValuesOnClearAction) {\n setInitialValues();\n } else {\n clearSelectedValues();\n }\n onClose();\n onClear?.();\n },\n } as ComponentProps<typeof Button>);\n\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-on-xs',\n onClick: () => {\n setSelectedValues();\n onClose();\n onApply?.({ isMobile: true, searchValue });\n },\n } as ComponentProps<typeof Button>)) ||\n undefined;\n\n const handleChange: OnChangeAction = useCallback(\n (...args) => {\n if (!multiple) {\n onClose();\n }\n onChange(...args);\n },\n [multiple, onChange, onClose]\n );\n\n const haveClearOrApplyChangesButtons = clearButton || applyChangesButton;\n const footer = !showErrorPlaceholder ? (\n !loading &&\n haveClearOrApplyChangesButtons &&\n renderButtonsContainer({\n clearButton,\n applyChangesButton,\n })\n ) : (\n <BottomSheetFooter>{error && error.resetButton}</BottomSheetFooter>\n );\n\n const onCloseBottomSheetWithUpdateValues = () => {\n setSelectedValues();\n onCloseWithAlertCheck();\n };\n\n return (\n <>\n <BottomSheet\n {...props}\n ref={optionsListRef}\n allowScrollWhileFocused\n keyboardOverlaysContent={false}\n visible={visible}\n showDivider={false}\n withContentPaddings={showErrorPlaceholder}\n header={renderHeader({\n onCloseBottomSheet: onCloseWithAlertCheck,\n searchValue,\n setSearchValue,\n searchable,\n headerTitle,\n onSearchSubmit,\n optionsCount: optionList.length,\n onCloseBottomSheetWithUpdateValues,\n })}\n onClose={onCloseWithAlertCheck}\n footer={footer}\n onAppear={onBottomSheetOpen}\n onAfterExit={onBottomSheetClose}\n >\n {loading && !showErrorPlaceholder && (\n <div className={styles.loading}>\n <Loader size={24} />\n </div>\n )}\n {showErrorPlaceholder && <div className={styles.errorWrapper}>{error && error.placeholder}</div>}\n {!loading && !showErrorPlaceholder && (\n <div\n className={classnames(styles.selectBottomSheet, styles[`select-bottom-sheet_${type}`])}\n data-qa=\"magritte-select-option-list-on-xs\"\n >\n {optionList.map(({ disabled: _disabled, type: optionType, ...option }) => {\n const checked = getChecked(option.value, values, !!multiple);\n const disabled = !checked && (_disabled || isLimitExceeded);\n return (\n <SelectOption\n key={option.value}\n name={name}\n checked={checked}\n onChange={handleChange}\n render={renderItem}\n disabled={disabled}\n type={optionType || type}\n plain={type === 'label'}\n multiple={multiple}\n isXS\n {...option}\n />\n );\n })}\n </div>\n )}\n </BottomSheet>\n {renderAlertOnExitWithoutSaving?.({\n alertVisible,\n onCloseAlert,\n onCloseBottomSheetAndAlert: () => {\n onCloseAlert();\n onClose();\n },\n })}\n </>\n );\n};\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"SelectBottomSheet.js","sources":["../src/SelectBottomSheet.tsx"],"sourcesContent":["import { useCallback, ReactElement, ReactNode, cloneElement, useState, ComponentProps } from 'react';\nimport classnames from 'classnames';\n\nimport { keyboardKeys, keyboardMatch } from '@hh.ru/magritte-common-keyboard';\nimport { Action } from '@hh.ru/magritte-ui-action';\nimport { ActionBar } from '@hh.ru/magritte-ui-action-bar';\nimport { BottomSheet, BottomSheetFooter } from '@hh.ru/magritte-ui-bottom-sheet';\nimport { Button } from '@hh.ru/magritte-ui-button';\nimport { ButtonElement } from '@hh.ru/magritte-ui-button-stack';\nimport { Cell, CellText } from '@hh.ru/magritte-ui-cell';\nimport { CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { SearchInput } from '@hh.ru/magritte-ui-input';\nimport { Loader } from '@hh.ru/magritte-ui-loader';\nimport { NavigationBar } from '@hh.ru/magritte-ui-navigation-bar';\nimport { SelectOption } from '@hh.ru/magritte-ui-select/SelectOption';\nimport { getChecked } from '@hh.ru/magritte-ui-select/getChecked';\nimport { isArraysEquals } from '@hh.ru/magritte-ui-select/isArraysEquals';\nimport {\n OnChangeAction,\n SelectButtons,\n SelectBottomSheetProps,\n RenderOptionTypeProps,\n RenderHeaderProps,\n} from '@hh.ru/magritte-ui-select/types';\n\nimport styles from './select-bottom-sheet.less';\n\nconst SelectOptionDefault = <DataType,>({ label, input, type }: RenderOptionTypeProps<DataType>): ReactElement => {\n if (type === 'delimiter') {\n return (\n <CellText maxLines={1} style=\"secondary\">\n {label}\n </CellText>\n );\n }\n if (type === 'label') {\n return <CellText maxLines={1}>{label}</CellText>;\n }\n return (\n <Cell Element=\"div\" align=\"center\" right={input}>\n <CellText maxLines={1}>{label}</CellText>\n </Cell>\n );\n};\n\nconst RenderButtonsContainerDefault = ({ clearButton, applyChangesButton }: SelectButtons): ReactNode => {\n const primaryActions = [clearButton, applyChangesButton].filter(Boolean);\n return <ActionBar type=\"mobile\" primaryActions={primaryActions as ButtonElement[]} />;\n};\n\nconst RenderHeaderDefault = ({\n onCloseBottomSheet,\n searchValue,\n setSearchValue,\n searchable,\n headerTitle,\n onSearchSubmit,\n optionsCount,\n onCloseBottomSheetWithUpdateValues,\n}: RenderHeaderProps): ReactNode => {\n return (\n <NavigationBar\n title={headerTitle}\n right={\n <Action\n icon={CrossOutlinedSize24}\n onClick={onCloseBottomSheet}\n data-qa=\"select-bottom-sheet-navigation-close\"\n />\n }\n options={\n searchable && (\n <SearchInput\n clearable\n size=\"medium\"\n value={searchValue}\n onChange={setSearchValue}\n onKeyDown={(event) => {\n if (onSearchSubmit && keyboardMatch(event.nativeEvent, keyboardKeys.Enter)) {\n onSearchSubmit(\n event,\n onCloseBottomSheet,\n optionsCount,\n onCloseBottomSheetWithUpdateValues\n );\n }\n }}\n data-qa=\"bottom-sheet-navigation-input\"\n autoComplete=\"off\"\n />\n )\n }\n />\n );\n};\n\nexport const SelectBottomSheet = <MultipleType extends boolean, DataType>({\n type,\n name,\n multiple,\n clearButton: _clearButton,\n applyChangesButton: _applyChangesButton,\n useInitialValuesOnClearAction,\n loading,\n error,\n renderHeader = RenderHeaderDefault,\n renderItem = SelectOptionDefault,\n renderButtonsContainer = RenderButtonsContainerDefault,\n renderAlertOnExitWithoutSaving,\n headerTitle,\n onClose,\n visible,\n optionList,\n optionsListRef,\n searchValue,\n setSearchValue,\n searchable,\n value: values,\n onChange,\n clearSelectedValues,\n setInitialValues,\n isLimitExceeded,\n initialValuesOnOpening,\n setSelectedValues,\n onBottomSheetOpen,\n onBottomSheetClose,\n onSearchSubmit,\n onApply,\n onClear,\n ...props\n}: SelectBottomSheetProps<MultipleType, DataType>): ReactElement => {\n const [alertVisible, setAlertVisible] = useState(false);\n const onCloseAlert = () => setAlertVisible(false);\n const showAlertOnExitWithoutSaving = Boolean(renderAlertOnExitWithoutSaving);\n const showErrorPlaceholder = Boolean(error);\n\n const onCloseWithAlertCheck = () => {\n if (showAlertOnExitWithoutSaving && multiple) {\n const haveUnsavingChanges = !isArraysEquals<string>(\n initialValuesOnOpening.current as string[],\n values as string[]\n );\n if (haveUnsavingChanges) {\n setAlertVisible(true);\n } else {\n onClose();\n }\n } else {\n onClose();\n }\n };\n\n const clearButton =\n _clearButton &&\n cloneElement(_clearButton, {\n key: 'clearButton',\n size: 'medium',\n 'data-qa': 'magritte-select-clear-action-on-xs',\n onClick: () => {\n if (useInitialValuesOnClearAction) {\n setInitialValues();\n } else {\n clearSelectedValues();\n }\n onClose();\n onClear?.();\n },\n } as Partial<ComponentProps<typeof Button>>);\n\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-on-xs',\n onClick: () => {\n setSelectedValues();\n onClose();\n onApply?.({ isMobile: true, searchValue });\n },\n } as Partial<ComponentProps<typeof Button>>)) ||\n undefined;\n\n const handleChange: OnChangeAction = useCallback(\n (...args) => {\n if (!multiple) {\n onClose();\n }\n onChange(...args);\n },\n [multiple, onChange, onClose]\n );\n\n const haveClearOrApplyChangesButtons = clearButton || applyChangesButton;\n const footer = !showErrorPlaceholder ? (\n !loading &&\n haveClearOrApplyChangesButtons &&\n renderButtonsContainer({\n clearButton,\n applyChangesButton,\n })\n ) : (\n <BottomSheetFooter>{error && error.resetButton}</BottomSheetFooter>\n );\n\n const onCloseBottomSheetWithUpdateValues = () => {\n setSelectedValues();\n onCloseWithAlertCheck();\n };\n\n return (\n <>\n <BottomSheet\n {...props}\n ref={optionsListRef}\n allowScrollWhileFocused\n keyboardOverlaysContent={false}\n visible={visible}\n showDivider={false}\n withContentPaddings={showErrorPlaceholder}\n header={renderHeader({\n onCloseBottomSheet: onCloseWithAlertCheck,\n searchValue,\n setSearchValue,\n searchable,\n headerTitle,\n onSearchSubmit,\n optionsCount: optionList.length,\n onCloseBottomSheetWithUpdateValues,\n })}\n onClose={onCloseWithAlertCheck}\n footer={footer}\n onAppear={onBottomSheetOpen}\n onAfterExit={onBottomSheetClose}\n >\n {loading && !showErrorPlaceholder && (\n <div className={styles.loading}>\n <Loader size={24} />\n </div>\n )}\n {showErrorPlaceholder && <div className={styles.errorWrapper}>{error && error.placeholder}</div>}\n {!loading && !showErrorPlaceholder && (\n <div\n className={classnames(styles.selectBottomSheet, styles[`select-bottom-sheet_${type}`])}\n data-qa=\"magritte-select-option-list-on-xs\"\n >\n {optionList.map(({ disabled: _disabled, type: optionType, ...option }) => {\n const checked = getChecked(option.value, values, !!multiple);\n const disabled = !checked && (_disabled || isLimitExceeded);\n return (\n <SelectOption\n key={option.value}\n name={name}\n checked={checked}\n onChange={handleChange}\n render={renderItem}\n disabled={disabled}\n type={optionType || type}\n plain={type === 'label'}\n multiple={multiple}\n isXS\n {...option}\n />\n );\n })}\n </div>\n )}\n </BottomSheet>\n {renderAlertOnExitWithoutSaving?.({\n alertVisible,\n onCloseAlert,\n onCloseBottomSheetAndAlert: () => {\n onCloseAlert();\n onClose();\n },\n })}\n </>\n );\n};\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
package/SelectDrop.js CHANGED
@@ -13,7 +13,7 @@ import '@hh.ru/magritte-ui-checkbox-radio';
13
13
  import '@hh.ru/magritte-ui-icon/icon';
14
14
  import '@hh.ru/magritte-ui-typography';
15
15
 
16
- var styles = {"select-drop":"magritte-select-drop___jn4O-_8-6-0","selectDrop":"magritte-select-drop___jn4O-_8-6-0","select-drop-header":"magritte-select-drop-header___fMmio_8-6-0","selectDropHeader":"magritte-select-drop-header___fMmio_8-6-0","select-drop_plain":"magritte-select-drop_plain___VL8Fz_8-6-0","selectDropPlain":"magritte-select-drop_plain___VL8Fz_8-6-0","label-option-plain":"magritte-label-option-plain___BvBH8_8-6-0","labelOptionPlain":"magritte-label-option-plain___BvBH8_8-6-0","loading":"magritte-loading___AMiuq_8-6-0"};
16
+ var styles = {"select-drop":"magritte-select-drop___jn4O-_8-6-1","selectDrop":"magritte-select-drop___jn4O-_8-6-1","select-drop-header":"magritte-select-drop-header___fMmio_8-6-1","selectDropHeader":"magritte-select-drop-header___fMmio_8-6-1","select-drop_plain":"magritte-select-drop_plain___VL8Fz_8-6-1","selectDropPlain":"magritte-select-drop_plain___VL8Fz_8-6-1","label-option-plain":"magritte-label-option-plain___BvBH8_8-6-1","labelOptionPlain":"magritte-label-option-plain___BvBH8_8-6-1","loading":"magritte-loading___AMiuq_8-6-1"};
17
17
 
18
18
  const SelectOptionDefault = ({ label, input, type, plain, }) => {
19
19
  if (type === 'delimiter') {
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 { keyboardKeys, keyboardMatches } from '@hh.ru/magritte-common-keyboard';\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 { Loader } from '@hh.ru/magritte-ui-loader';\nimport { SelectOption } from '@hh.ru/magritte-ui-select/SelectOption';\nimport { getChecked } from '@hh.ru/magritte-ui-select/getChecked';\nimport { OnChangeAction, SelectDropProps, RenderOptionTypeProps, SelectButtons } from '@hh.ru/magritte-ui-select/types';\n\nimport styles from './select-drop.less';\n\nconst SelectOptionDefault = <DataType,>({\n label,\n input,\n type,\n plain,\n}: RenderOptionTypeProps<DataType>): ReactElement => {\n if (type === 'delimiter') {\n return (\n <CellText maxLines={1} style=\"secondary\">\n {label}\n </CellText>\n );\n }\n if (type === 'label') {\n if (plain) {\n return <CellText maxLines={1}>{label}</CellText>;\n }\n return (\n <Cell Element=\"div\" align=\"center\">\n <div className={styles.labelOptionPlain}>\n <CellText maxLines={1}>{label}</CellText>\n </div>\n </Cell>\n );\n }\n return (\n <Cell Element=\"div\" align=\"center\" left={input}>\n <CellText maxLines={1}>{label}</CellText>\n </Cell>\n );\n};\n\nconst RenderButtonsContainerDefault = ({ applyChangesButton }: SelectButtons): ReactNode => {\n const primaryActions = [applyChangesButton].filter((btn) => btn);\n if (primaryActions.length === 0) {\n return null;\n }\n // заменить на action-bar, когда разберемся с отсутпами\n return <>{applyChangesButton}</>;\n};\n\nexport const SelectDrop = <MultipleType extends boolean, DataType>({\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 onApply,\n onClear,\n ...props\n}: SelectDropProps<MultipleType, DataType>): ReactElement => {\n const closedByKeyboardRef = useRef(false);\n const handleChange: OnChangeAction = useCallback(\n (...args) => {\n onChange(...args);\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 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 ComponentProps<typeof Button>)) ||\n undefined;\n const footer =\n !loading &&\n needAddChangesButton &&\n renderButtonsContainer({\n applyChangesButton,\n clearButton,\n });\n return (\n <Drop\n {...props}\n ref={optionsListRef}\n autoFocusWhenOpened={false}\n maxWidth={maxWidth}\n visible={(optionList.length > 0 || forceDropVisibleWithEmptyOptions) && visible}\n placement={['bottom-left', 'top-left']}\n activatorRef={activatorRef}\n role={searchable ? 'status' : 'listbox'}\n space={plain ? 600 : 300}\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 {loading && (\n <div className={styles.loading}>\n <Loader size={24} />\n </div>\n )}\n {!loading && (\n <>\n {renderContentBefore && (\n <div data-qa=\"magritte-select-header\" className={styles.selectDropHeader}>\n {renderContentBefore({ clearSelectedValuesAndClose, searchValue, setSearchValue })}\n </div>\n )}\n <div\n className={classnames(styles.selectDrop, { [styles.selectDropPlain]: plain })}\n data-qa=\"magritte-select-option-list\"\n style={{ maxHeight: `${maxHeight}px` }}\n >\n {optionList.map(({ disabled: _disabled, type: optionType, ...option }) => {\n const checked = getChecked(option.value, values, !!multiple);\n const disabled = !checked && (_disabled || isLimitExceeded);\n return (\n <SelectOption\n key={option.value}\n name={name}\n checked={checked}\n onChange={handleChange}\n render={renderItem}\n disabled={disabled}\n type={optionType || type}\n plain={!!plain}\n isMobile={false}\n multiple={multiple}\n {...option}\n />\n );\n })}\n </div>\n </>\n )}\n </Drop>\n );\n};\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
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 { keyboardKeys, keyboardMatches } from '@hh.ru/magritte-common-keyboard';\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 { Loader } from '@hh.ru/magritte-ui-loader';\nimport { SelectOption } from '@hh.ru/magritte-ui-select/SelectOption';\nimport { getChecked } from '@hh.ru/magritte-ui-select/getChecked';\nimport { OnChangeAction, SelectDropProps, RenderOptionTypeProps, SelectButtons } from '@hh.ru/magritte-ui-select/types';\n\nimport styles from './select-drop.less';\n\nconst SelectOptionDefault = <DataType,>({\n label,\n input,\n type,\n plain,\n}: RenderOptionTypeProps<DataType>): ReactElement => {\n if (type === 'delimiter') {\n return (\n <CellText maxLines={1} style=\"secondary\">\n {label}\n </CellText>\n );\n }\n if (type === 'label') {\n if (plain) {\n return <CellText maxLines={1}>{label}</CellText>;\n }\n return (\n <Cell Element=\"div\" align=\"center\">\n <div className={styles.labelOptionPlain}>\n <CellText maxLines={1}>{label}</CellText>\n </div>\n </Cell>\n );\n }\n return (\n <Cell Element=\"div\" align=\"center\" left={input}>\n <CellText maxLines={1}>{label}</CellText>\n </Cell>\n );\n};\n\nconst RenderButtonsContainerDefault = ({ applyChangesButton }: SelectButtons): ReactNode => {\n const primaryActions = [applyChangesButton].filter((btn) => btn);\n if (primaryActions.length === 0) {\n return null;\n }\n // заменить на action-bar, когда разберемся с отсутпами\n return <>{applyChangesButton}</>;\n};\n\nexport const SelectDrop = <MultipleType extends boolean, DataType>({\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 onApply,\n onClear,\n ...props\n}: SelectDropProps<MultipleType, DataType>): ReactElement => {\n const closedByKeyboardRef = useRef(false);\n const handleChange: OnChangeAction = useCallback(\n (...args) => {\n onChange(...args);\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 undefined;\n const footer =\n !loading &&\n needAddChangesButton &&\n renderButtonsContainer({\n applyChangesButton,\n clearButton,\n });\n return (\n <Drop\n {...props}\n ref={optionsListRef}\n autoFocusWhenOpened={false}\n maxWidth={maxWidth}\n visible={(optionList.length > 0 || forceDropVisibleWithEmptyOptions) && visible}\n placement={['bottom-left', 'top-left']}\n activatorRef={activatorRef}\n role={searchable ? 'status' : 'listbox'}\n space={plain ? 600 : 300}\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 {loading && (\n <div className={styles.loading}>\n <Loader size={24} />\n </div>\n )}\n {!loading && (\n <>\n {renderContentBefore && (\n <div data-qa=\"magritte-select-header\" className={styles.selectDropHeader}>\n {renderContentBefore({ clearSelectedValuesAndClose, searchValue, setSearchValue })}\n </div>\n )}\n <div\n className={classnames(styles.selectDrop, { [styles.selectDropPlain]: plain })}\n data-qa=\"magritte-select-option-list\"\n style={{ maxHeight: `${maxHeight}px` }}\n >\n {optionList.map(({ disabled: _disabled, type: optionType, ...option }) => {\n const checked = getChecked(option.value, values, !!multiple);\n const disabled = !checked && (_disabled || isLimitExceeded);\n return (\n <SelectOption\n key={option.value}\n name={name}\n checked={checked}\n onChange={handleChange}\n render={renderItem}\n disabled={disabled}\n type={optionType || type}\n plain={!!plain}\n isMobile={false}\n multiple={multiple}\n {...option}\n />\n );\n })}\n </div>\n </>\n )}\n </Drop>\n );\n};\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
package/SelectOption.js CHANGED
@@ -9,7 +9,7 @@ import { Radio, Checkbox } from '@hh.ru/magritte-ui-checkbox-radio';
9
9
  import { CheckOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
10
10
  import { Text } from '@hh.ru/magritte-ui-typography';
11
11
 
12
- var styles = {"select-option-label":"magritte-select-option-label___bYo2l_8-6-0","selectOptionLabel":"magritte-select-option-label___bYo2l_8-6-0","select-option-label_desktop":"magritte-select-option-label_desktop___bceen_8-6-0","selectOptionLabelDesktop":"magritte-select-option-label_desktop___bceen_8-6-0","select-delimiter":"magritte-select-delimiter___WyeR6_8-6-0","selectDelimiter":"magritte-select-delimiter___WyeR6_8-6-0"};
12
+ var styles = {"select-option-label":"magritte-select-option-label___bYo2l_8-6-1","selectOptionLabel":"magritte-select-option-label___bYo2l_8-6-1","select-option-label_desktop":"magritte-select-option-label_desktop___bceen_8-6-1","selectOptionLabelDesktop":"magritte-select-option-label_desktop___bceen_8-6-1","select-delimiter":"magritte-select-delimiter___WyeR6_8-6-1","selectDelimiter":"magritte-select-delimiter___WyeR6_8-6-1"};
13
13
 
14
14
  const CheckableComponent = ({ type, value, checked, name, onChange }) => {
15
15
  if (type === 'label') {
package/index.css CHANGED
@@ -1,11 +1,11 @@
1
- .magritte-select-option-label___bYo2l_8-6-0{
1
+ .magritte-select-option-label___bYo2l_8-6-1{
2
2
  display:flex;
3
3
  max-height:56px;
4
4
  }
5
- .magritte-select-option-label_desktop___bceen_8-6-0{
5
+ .magritte-select-option-label_desktop___bceen_8-6-1{
6
6
  max-height:24px;
7
7
  }
8
- .magritte-select-delimiter___WyeR6_8-6-0{
8
+ .magritte-select-delimiter___WyeR6_8-6-1{
9
9
  padding-left:16px;
10
10
  padding-top:12px;
11
11
  }
@@ -13,44 +13,44 @@
13
13
  :root{
14
14
  --magritte-static-space-400-v19-1-2:16px;
15
15
  }
16
- .magritte-select-bottom-sheet___1RZDJ_8-6-0{
16
+ .magritte-select-bottom-sheet___1RZDJ_8-6-1{
17
17
  display:flex;
18
18
  flex-direction:column;
19
19
  padding:0 var(--magritte-static-space-400-v19-1-2);
20
20
  padding-bottom:16px;
21
21
  }
22
- .magritte-select-bottom-sheet_checkbox___hwTgo_8-6-0,
23
- .magritte-select-bottom-sheet_radio___qvFFV_8-6-0{
22
+ .magritte-select-bottom-sheet_checkbox___hwTgo_8-6-1,
23
+ .magritte-select-bottom-sheet_radio___qvFFV_8-6-1{
24
24
  gap:12px;
25
25
  }
26
- .magritte-loading___VpU1J_8-6-0{
26
+ .magritte-loading___VpU1J_8-6-1{
27
27
  display:flex;
28
28
  align-items:center;
29
29
  height:100%;
30
30
  justify-content:center;
31
31
  }
32
- .magritte-error-wrapper___P7jYg_8-6-0{
32
+ .magritte-error-wrapper___P7jYg_8-6-1{
33
33
  height:100%;
34
34
  }
35
35
 
36
- .magritte-select-drop___jn4O-_8-6-0{
36
+ .magritte-select-drop___jn4O-_8-6-1{
37
37
  display:flex;
38
38
  flex-direction:column;
39
39
  gap:8px;
40
40
  }
41
- .magritte-select-drop-header___fMmio_8-6-0{
41
+ .magritte-select-drop-header___fMmio_8-6-1{
42
42
  display:flex;
43
43
  flex-direction:column;
44
44
  margin-bottom:8px;
45
45
  }
46
- .magritte-select-drop_plain___VL8Fz_8-6-0{
46
+ .magritte-select-drop_plain___VL8Fz_8-6-1{
47
47
  gap:16px;
48
48
  }
49
- .magritte-label-option-plain___BvBH8_8-6-0{
49
+ .magritte-label-option-plain___BvBH8_8-6-1{
50
50
  display:flex;
51
51
  justify-content:center;
52
52
  }
53
- .magritte-loading___AMiuq_8-6-0{
53
+ .magritte-loading___AMiuq_8-6-1{
54
54
  display:flex;
55
55
  align-items:center;
56
56
  height:150px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-select",
3
- "version": "8.6.0",
3
+ "version": "8.6.1",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -30,22 +30,22 @@
30
30
  "@hh.ru/magritte-common-fuzzy-search": "1.0.5",
31
31
  "@hh.ru/magritte-common-keyboard": "4.0.2",
32
32
  "@hh.ru/magritte-common-use-multiple-refs": "1.1.4",
33
- "@hh.ru/magritte-ui-action": "4.4.12",
34
- "@hh.ru/magritte-ui-action-bar": "2.2.5",
35
- "@hh.ru/magritte-ui-bottom-sheet": "5.5.10",
33
+ "@hh.ru/magritte-ui-action": "4.4.13",
34
+ "@hh.ru/magritte-ui-action-bar": "2.2.6",
35
+ "@hh.ru/magritte-ui-bottom-sheet": "5.5.11",
36
36
  "@hh.ru/magritte-ui-breakpoint": "4.0.4",
37
- "@hh.ru/magritte-ui-button": "5.2.4",
38
- "@hh.ru/magritte-ui-button-stack": "2.1.23",
39
- "@hh.ru/magritte-ui-cell": "4.0.19",
40
- "@hh.ru/magritte-ui-checkable-card": "3.0.47",
41
- "@hh.ru/magritte-ui-checkbox-radio": "3.0.24",
37
+ "@hh.ru/magritte-ui-button": "5.2.5",
38
+ "@hh.ru/magritte-ui-button-stack": "2.1.24",
39
+ "@hh.ru/magritte-ui-cell": "4.0.20",
40
+ "@hh.ru/magritte-ui-checkable-card": "3.0.48",
41
+ "@hh.ru/magritte-ui-checkbox-radio": "3.0.25",
42
42
  "@hh.ru/magritte-ui-drop": "7.2.3",
43
- "@hh.ru/magritte-ui-icon": "7.9.2",
44
- "@hh.ru/magritte-ui-input": "7.0.2",
45
- "@hh.ru/magritte-ui-loader": "1.3.7",
46
- "@hh.ru/magritte-ui-navigation-bar": "6.3.3",
47
- "@hh.ru/magritte-ui-trigger": "3.0.3",
48
- "@hh.ru/magritte-ui-typography": "3.0.18"
43
+ "@hh.ru/magritte-ui-icon": "7.9.3",
44
+ "@hh.ru/magritte-ui-input": "7.0.3",
45
+ "@hh.ru/magritte-ui-loader": "1.3.8",
46
+ "@hh.ru/magritte-ui-navigation-bar": "6.3.4",
47
+ "@hh.ru/magritte-ui-trigger": "3.0.4",
48
+ "@hh.ru/magritte-ui-typography": "3.0.19"
49
49
  },
50
- "gitHead": "cab9a585e813e940e1ffd06999a9aaf80df7b3a8"
50
+ "gitHead": "34aa8b63db1d1af2d969ef765d060ac8f59cd9ff"
51
51
  }