@os-design/core 1.0.251 → 1.0.252
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/dist/cjs/Select/index.js
CHANGED
|
@@ -383,7 +383,7 @@ var Select = /*#__PURE__*/(0, _react2.forwardRef)(function (_ref, ref) {
|
|
|
383
383
|
}, [forwardedValue, maxSelectedItems, multiple, setForwardedValue]);
|
|
384
384
|
var windowSize = (0, _utils.useSize)();
|
|
385
385
|
var isMinXs = (0, _media.useIsMinWidth)('xs');
|
|
386
|
-
var fontSize = (0, _utils.useFontSize)(document.body);
|
|
386
|
+
var fontSize = (0, _utils.useFontSize)(typeof window !== 'undefined' ? document.body : null);
|
|
387
387
|
var _useTheme = (0, _theming.useTheme)(),
|
|
388
388
|
theme = _useTheme.theme;
|
|
389
389
|
var scaleFactor = (0, _react2.useMemo)(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","require","_styled","_interopRequireDefault","_icons","_media","_styles","_theming","_utils","_react2","_interopRequireWildcard","_reactWindow","_Button","_Input","_InputSearch","_useRWLoadNext","_Menu","_MenuItem","_Tag","_defaultLocale","_excluded","_excluded2","_excluded3","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","prototype","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","slice","constructor","name","test","len","arr2","l","f","next","done","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","_taggedTemplateLiteral","strings","raw","freeze","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","css","selectContainerOpenedStyles","opened","unbordered","clr","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","transitionStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","exports","styled","InputContainer","omitEmotionProps","SelectMenu","Menu","m","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","ellipsisStyles","Placeholder","span","inputColorPlaceholder","titleUnborderedStyles","concat","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","Tag","ToggleList","selectToggleListItemGap","DeleteButton","button","resetButtonStyles","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","CloseCircle","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","forwardRef","_ref","ref","_ref$options","options","_ref$initSelectedOpti","initSelectedOptions","left","_ref$leftHasPadding","leftHasPadding","right","_ref$rightHasPadding","rightHasPadding","placeholder","_ref$searchVisible","searchVisible","_ref$searchProps","searchProps","_ref$notFoundText","notFoundText","_ref$unbordered","_ref$loading","loading","_ref$disabled","_ref$autoFocus","autoFocus","_ref$autoOpen","autoOpen","_ref$clearVisible","clearVisible","_ref$threshold","threshold","_ref$visibleCount","visibleCount","_ref$overscanCount","overscanCount","_ref$multiple","multiple","_ref$maxSelectedItems","maxSelectedItems","_ref$locale","locale","defaultLocale","defaultValue","onChange","_ref$onLoadNext","onLoadNext","_ref$onClose","onClose","_ref$onBlur","onBlur","size","placement","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","containerRef","mergedContainerRef","_useState","useState","_useState2","setWidth","_useState3","_useState4","setOpened","_useForwardedState","useForwardedState","_useForwardedState2","forwardedValue","setForwardedValue","useEffect","_containerRef$current","current","focus","onCloseRef","useRef","initRef","resizeHandler","useCallback","window","requestAnimationFrame","nextWidth","getBoundingClientRect","useBrowserLayoutEffect","useResizeObserver","useEvent","undefined","setAttribute","listBoxId","useMemo","Math","random","blurHandler","onDelete","v","item","prevSelectedOptions","selectedOptions","values","items","map","option","find","title","toggleContent","createElement","_ref2","onClick","stopPropagation","onKeyDown","deleteLabel","Close","toggleShowClearButton","toggleOnClear","toggleRightValue","Loading","type","wide","clearLabel","Up","Down","toggleRightHasPaddingValue","onSelect","includes","windowSize","useSize","isMinXs","useIsMinWidth","fontSize","useFontSize","document","body","_useTheme","useTheme","scaleFactor","s","sizes","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","useRWLoadNext","itemCount","InnerElement","_ref3","style","innerElementRest","parseFloat","role","id","listItemFn","_ref4","index","_options$index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","ThemeOverrider","overrides","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","FixedSizeList","onScroll","_ref5","scrollOffset","innerElementType","displayName","_default"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n value: string;\n title: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst titleUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst titleDisabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${titleUnborderedStyles};\n ${titleDisabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ToggleListItemProps = Pick<SelectProps, 'disabled'>;\nconst ToggleListItem = styled(\n Tag,\n omitEmotionProps('disabled')\n)<ToggleListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${titleDisabledStyles};\n`;\n\nconst ToggleList = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst toggleIconUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface ToggleIconContainerProps {\n unbordered?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n const initRef = useRef(false);\n useEffect(() => {\n if (!initRef.current) {\n initRef.current = true;\n return;\n }\n if (!opened) onCloseRef.current();\n }, [opened]);\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","require","_styled","_interopRequireDefault","_icons","_media","_styles","_theming","_utils","_react2","_interopRequireWildcard","_reactWindow","_Button","_Input","_InputSearch","_useRWLoadNext","_Menu","_MenuItem","_Tag","_defaultLocale","_excluded","_excluded2","_excluded3","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","prototype","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","slice","constructor","name","test","len","arr2","l","f","next","done","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","_taggedTemplateLiteral","strings","raw","freeze","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","css","selectContainerOpenedStyles","opened","unbordered","clr","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","transitionStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","exports","styled","InputContainer","omitEmotionProps","SelectMenu","Menu","m","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","ellipsisStyles","Placeholder","span","inputColorPlaceholder","titleUnborderedStyles","concat","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","Tag","ToggleList","selectToggleListItemGap","DeleteButton","button","resetButtonStyles","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","CloseCircle","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","forwardRef","_ref","ref","_ref$options","options","_ref$initSelectedOpti","initSelectedOptions","left","_ref$leftHasPadding","leftHasPadding","right","_ref$rightHasPadding","rightHasPadding","placeholder","_ref$searchVisible","searchVisible","_ref$searchProps","searchProps","_ref$notFoundText","notFoundText","_ref$unbordered","_ref$loading","loading","_ref$disabled","_ref$autoFocus","autoFocus","_ref$autoOpen","autoOpen","_ref$clearVisible","clearVisible","_ref$threshold","threshold","_ref$visibleCount","visibleCount","_ref$overscanCount","overscanCount","_ref$multiple","multiple","_ref$maxSelectedItems","maxSelectedItems","_ref$locale","locale","defaultLocale","defaultValue","onChange","_ref$onLoadNext","onLoadNext","_ref$onClose","onClose","_ref$onBlur","onBlur","size","placement","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","containerRef","mergedContainerRef","_useState","useState","_useState2","setWidth","_useState3","_useState4","setOpened","_useForwardedState","useForwardedState","_useForwardedState2","forwardedValue","setForwardedValue","useEffect","_containerRef$current","current","focus","onCloseRef","useRef","initRef","resizeHandler","useCallback","window","requestAnimationFrame","nextWidth","getBoundingClientRect","useBrowserLayoutEffect","useResizeObserver","useEvent","undefined","setAttribute","listBoxId","useMemo","Math","random","blurHandler","onDelete","v","item","prevSelectedOptions","selectedOptions","values","items","map","option","find","title","toggleContent","createElement","_ref2","onClick","stopPropagation","onKeyDown","deleteLabel","Close","toggleShowClearButton","toggleOnClear","toggleRightValue","Loading","type","wide","clearLabel","Up","Down","toggleRightHasPaddingValue","onSelect","includes","windowSize","useSize","isMinXs","useIsMinWidth","fontSize","useFontSize","document","body","_useTheme","useTheme","scaleFactor","s","sizes","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","useRWLoadNext","itemCount","InnerElement","_ref3","style","innerElementRest","parseFloat","role","id","listItemFn","_ref4","index","_options$index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","ThemeOverrider","overrides","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","FixedSizeList","onScroll","_ref5","scrollOffset","innerElementType","displayName","_default"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n value: string;\n title: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst titleUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst titleDisabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${titleUnborderedStyles};\n ${titleDisabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ToggleListItemProps = Pick<SelectProps, 'disabled'>;\nconst ToggleListItem = styled(\n Tag,\n omitEmotionProps('disabled')\n)<ToggleListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${titleDisabledStyles};\n`;\n\nconst ToggleList = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst toggleIconUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface ToggleIconContainerProps {\n unbordered?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n const initRef = useRef(false);\n useEffect(() => {\n if (!initRef.current) {\n initRef.current = true;\n return;\n }\n if (!opened) onCloseRef.current();\n }, [opened]);\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(\n typeof window !== 'undefined'\n ? document.body\n : (null as unknown as HTMLElement)\n );\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/esm/Select/index.js
CHANGED
|
@@ -381,7 +381,7 @@ const Select = /*#__PURE__*/forwardRef(({
|
|
|
381
381
|
}, [forwardedValue, maxSelectedItems, multiple, setForwardedValue]);
|
|
382
382
|
const windowSize = useSize();
|
|
383
383
|
const isMinXs = useIsMinWidth('xs');
|
|
384
|
-
const fontSize = useFontSize(document.body);
|
|
384
|
+
const fontSize = useFontSize(typeof window !== 'undefined' ? document.body : null);
|
|
385
385
|
const {
|
|
386
386
|
theme
|
|
387
387
|
} = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["css","styled","Close","CloseCircle","Down","Loading","Up","m","useIsMinWidth","ellipsisStyles","resetButtonStyles","transitionStyles","ThemeOverrider","clr","useTheme","omitEmotionProps","useBrowserLayoutEffect","useEvent","useFontSize","useForwardedRef","useForwardedState","useResizeObserver","useSize","React","forwardRef","useCallback","useEffect","useMemo","useRef","useState","FixedSizeList","Button","InputContainer","InputSearch","useRWLoadNext","Menu","MenuItem","Tag","defaultLocale","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","selectContainerOpenedStyles","opened","unbordered","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","SelectMenu","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","Placeholder","span","inputColorPlaceholder","titleUnborderedStyles","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","ToggleList","selectToggleListItemGap","DeleteButton","button","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","options","initSelectedOptions","left","leftHasPadding","right","rightHasPadding","placeholder","searchVisible","searchProps","notFoundText","loading","autoFocus","autoOpen","clearVisible","threshold","visibleCount","overscanCount","multiple","maxSelectedItems","locale","value","defaultValue","onChange","onLoadNext","onClose","onBlur","size","placement","rest","ref","containerRef","mergedContainerRef","setWidth","setOpened","forwardedValue","setForwardedValue","current","focus","onCloseRef","initRef","resizeHandler","window","requestAnimationFrame","nextWidth","getBoundingClientRect","undefined","setAttribute","listBoxId","Math","random","toString","slice","blurHandler","e","onDelete","v","filter","item","prevSelectedOptions","selectedOptions","values","Array","isArray","items","map","option","find","title","toggleContent","length","createElement","key","onClick","stopPropagation","onKeyDown","deleteLabel","toggleShowClearButton","toggleOnClear","toggleRightValue","type","wide","clearLabel","toggleRightHasPaddingValue","onSelect","includes","windowSize","isMinXs","fontSize","document","body","scaleFactor","s","sizes","Number","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","itemCount","InnerElement","style","innerElementRest","_extends","parseFloat","role","id","listItemFn","index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","overrides","t","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","onScroll","scrollOffset","innerElementType","displayName"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n value: string;\n title: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst titleUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst titleDisabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${titleUnborderedStyles};\n ${titleDisabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ToggleListItemProps = Pick<SelectProps, 'disabled'>;\nconst ToggleListItem = styled(\n Tag,\n omitEmotionProps('disabled')\n)<ToggleListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${titleDisabledStyles};\n`;\n\nconst ToggleList = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst toggleIconUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface ToggleIconContainerProps {\n unbordered?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n const initRef = useRef(false);\n useEffect(() => {\n if (!initRef.current) {\n initRef.current = true;\n return;\n }\n if (!opened) onCloseRef.current();\n }, [opened]);\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["css","styled","Close","CloseCircle","Down","Loading","Up","m","useIsMinWidth","ellipsisStyles","resetButtonStyles","transitionStyles","ThemeOverrider","clr","useTheme","omitEmotionProps","useBrowserLayoutEffect","useEvent","useFontSize","useForwardedRef","useForwardedState","useResizeObserver","useSize","React","forwardRef","useCallback","useEffect","useMemo","useRef","useState","FixedSizeList","Button","InputContainer","InputSearch","useRWLoadNext","Menu","MenuItem","Tag","defaultLocale","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","selectContainerOpenedStyles","opened","unbordered","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","SelectMenu","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","Placeholder","span","inputColorPlaceholder","titleUnborderedStyles","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","ToggleList","selectToggleListItemGap","DeleteButton","button","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","options","initSelectedOptions","left","leftHasPadding","right","rightHasPadding","placeholder","searchVisible","searchProps","notFoundText","loading","autoFocus","autoOpen","clearVisible","threshold","visibleCount","overscanCount","multiple","maxSelectedItems","locale","value","defaultValue","onChange","onLoadNext","onClose","onBlur","size","placement","rest","ref","containerRef","mergedContainerRef","setWidth","setOpened","forwardedValue","setForwardedValue","current","focus","onCloseRef","initRef","resizeHandler","window","requestAnimationFrame","nextWidth","getBoundingClientRect","undefined","setAttribute","listBoxId","Math","random","toString","slice","blurHandler","e","onDelete","v","filter","item","prevSelectedOptions","selectedOptions","values","Array","isArray","items","map","option","find","title","toggleContent","length","createElement","key","onClick","stopPropagation","onKeyDown","deleteLabel","toggleShowClearButton","toggleOnClear","toggleRightValue","type","wide","clearLabel","toggleRightHasPaddingValue","onSelect","includes","windowSize","isMinXs","fontSize","document","body","scaleFactor","s","sizes","Number","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","itemCount","InnerElement","style","innerElementRest","_extends","parseFloat","role","id","listItemFn","index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","overrides","t","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","onScroll","scrollOffset","innerElementType","displayName"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n value: string;\n title: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst titleUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst titleDisabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${titleUnborderedStyles};\n ${titleDisabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ToggleListItemProps = Pick<SelectProps, 'disabled'>;\nconst ToggleListItem = styled(\n Tag,\n omitEmotionProps('disabled')\n)<ToggleListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${titleDisabledStyles};\n`;\n\nconst ToggleList = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst toggleIconUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface ToggleIconContainerProps {\n unbordered?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n const initRef = useRef(false);\n useEffect(() => {\n if (!initRef.current) {\n initRef.current = true;\n return;\n }\n if (!opened) onCloseRef.current();\n }, [opened]);\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(\n typeof window !== 'undefined'\n ? document.body\n : (null as unknown as HTMLElement)\n );\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Select/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Select/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@os-design/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.252",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": "git@gitlab.com:os-team/libs/os-design.git",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"react": ">=18",
|
|
60
60
|
"react-dom": ">=18"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "61aeade8e93442219e06e7bbf6a63e5fd06e887d"
|
|
63
63
|
}
|
package/src/Select/index.tsx
CHANGED
|
@@ -738,7 +738,11 @@ const Select = forwardRef<HTMLDivElement, SelectProps>(
|
|
|
738
738
|
|
|
739
739
|
const windowSize = useSize();
|
|
740
740
|
const isMinXs = useIsMinWidth('xs');
|
|
741
|
-
const fontSize = useFontSize(
|
|
741
|
+
const fontSize = useFontSize(
|
|
742
|
+
typeof window !== 'undefined'
|
|
743
|
+
? document.body
|
|
744
|
+
: (null as unknown as HTMLElement)
|
|
745
|
+
);
|
|
742
746
|
const { theme } = useTheme();
|
|
743
747
|
|
|
744
748
|
const scaleFactor = useMemo(() => {
|