@os-design/core 1.0.216 → 1.0.217

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.
@@ -276,11 +276,13 @@ var Select = /*#__PURE__*/(0, _react2.forwardRef)(function (_ref, ref) {
276
276
  (0, _react2.useEffect)(function () {
277
277
  optionsRef.current = options;
278
278
  }, [options]);
279
+ var prevSelectedOptions = (0, _react2.useRef)([]);
279
280
  var selectedOptions = (0, _react2.useMemo)(function () {
280
281
  if (!forwardedValue) return [];
281
- var items = Array.isArray(forwardedValue) ? forwardedValue : [forwardedValue];
282
- return items.map(function (v) {
283
- var option = optionsRef.current.find(function (item) {
282
+ var values = Array.isArray(forwardedValue) ? forwardedValue : [forwardedValue];
283
+ var items = [].concat(_toConsumableArray(prevSelectedOptions.current), _toConsumableArray(optionsRef.current));
284
+ return values.map(function (v) {
285
+ var option = items.find(function (item) {
284
286
  return item.value === v;
285
287
  });
286
288
  return {
@@ -289,6 +291,9 @@ var Select = /*#__PURE__*/(0, _react2.forwardRef)(function (_ref, ref) {
289
291
  };
290
292
  });
291
293
  }, [forwardedValue]);
294
+ (0, _react2.useEffect)(function () {
295
+ prevSelectedOptions.current = selectedOptions;
296
+ }, [selectedOptions]);
292
297
  var toggleContent = (0, _react2.useMemo)(function () {
293
298
  if (multiple) {
294
299
  if (!forwardedValue || forwardedValue.length === 0) {
@@ -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","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","toString","slice","constructor","name","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","err","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_taggedTemplateLiteral","strings","raw","freeze","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","css","selectContainerOpenedStyles","opened","unbordered","clr","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","transitionStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","styled","InputContainer","omitEmotionProps","exports","SelectMenu","Menu","m","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","ellipsisStyles","Placeholder","span","inputColorPlaceholder","titleUnborderedTitleStyles","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","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","inputSearchContainerRef","useRef","_useState3","_useState4","setOpened","_useForwardedState","useForwardedState","_useForwardedState2","forwardedValue","setForwardedValue","useEffect","_containerRef$current","current","focus","onCloseRef","resizeHandler","useCallback","window","requestAnimationFrame","nextWidth","getBoundingClientRect","useBrowserLayoutEffect","useResizeObserver","useEvent","setAttribute","listBoxId","useMemo","Math","random","blurHandler","e","onDelete","v","item","optionsRef","selectedOptions","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","t","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 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 * 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 titleUnborderedTitleStyles = (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 ${titleUnborderedTitleStyles};\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 disabled?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered', 'disabled')\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 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 inputSearchContainerRef = useRef<HTMLDivElement>(null);\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 useEffect(() => {\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 optionsRef = useRef(options);\n useEffect(() => {\n optionsRef.current = options;\n }, [options]);\n\n const selectedOptions = useMemo(() => {\n if (!forwardedValue) return [];\n const items = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n return items.map((v) => {\n const option = optionsRef.current.find((item) => item.value === v);\n return { title: option ? option.title || v : v, value: v };\n });\n }, [forwardedValue]);\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} disabled={disabled}>\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 ref={inputSearchContainerRef}>\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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"}
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","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","toString","slice","constructor","name","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","err","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_taggedTemplateLiteral","strings","raw","freeze","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","css","selectContainerOpenedStyles","opened","unbordered","clr","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","transitionStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","styled","InputContainer","omitEmotionProps","exports","SelectMenu","Menu","m","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","ellipsisStyles","Placeholder","span","inputColorPlaceholder","titleUnborderedTitleStyles","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","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","inputSearchContainerRef","useRef","_useState3","_useState4","setOpened","_useForwardedState","useForwardedState","_useForwardedState2","forwardedValue","setForwardedValue","useEffect","_containerRef$current","current","focus","onCloseRef","resizeHandler","useCallback","window","requestAnimationFrame","nextWidth","getBoundingClientRect","useBrowserLayoutEffect","useResizeObserver","useEvent","setAttribute","listBoxId","useMemo","Math","random","blurHandler","e","onDelete","v","item","optionsRef","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","t","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 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 * 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 titleUnborderedTitleStyles = (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 ${titleUnborderedTitleStyles};\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 disabled?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered', 'disabled')\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 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 inputSearchContainerRef = useRef<HTMLDivElement>(null);\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 useEffect(() => {\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 optionsRef = useRef(options);\n useEffect(() => {\n optionsRef.current = options;\n }, [options]);\n\n const prevSelectedOptions = useRef<Array<{ title: string; value: string }>>(\n []\n );\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 = [...prevSelectedOptions.current, ...optionsRef.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return { title: option ? option.title || v : v, value: v };\n });\n }, [forwardedValue]);\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} disabled={disabled}>\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 ref={inputSearchContainerRef}>\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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"}
@@ -275,17 +275,22 @@ const Select = /*#__PURE__*/forwardRef(({
275
275
  useEffect(() => {
276
276
  optionsRef.current = options;
277
277
  }, [options]);
278
+ const prevSelectedOptions = useRef([]);
278
279
  const selectedOptions = useMemo(() => {
279
280
  if (!forwardedValue) return [];
280
- const items = Array.isArray(forwardedValue) ? forwardedValue : [forwardedValue];
281
- return items.map(v => {
282
- const option = optionsRef.current.find(item => item.value === v);
281
+ const values = Array.isArray(forwardedValue) ? forwardedValue : [forwardedValue];
282
+ const items = [...prevSelectedOptions.current, ...optionsRef.current];
283
+ return values.map(v => {
284
+ const option = items.find(item => item.value === v);
283
285
  return {
284
286
  title: option ? option.title || v : v,
285
287
  value: v
286
288
  };
287
289
  });
288
290
  }, [forwardedValue]);
291
+ useEffect(() => {
292
+ prevSelectedOptions.current = selectedOptions;
293
+ }, [selectedOptions]);
289
294
  const toggleContent = useMemo(() => {
290
295
  if (multiple) {
291
296
  if (!forwardedValue || forwardedValue.length === 0) {
@@ -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","titleUnborderedTitleStyles","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","ToggleList","selectToggleListItemGap","DeleteButton","button","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","options","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","inputSearchContainerRef","setOpened","forwardedValue","setForwardedValue","current","focus","onCloseRef","resizeHandler","window","requestAnimationFrame","nextWidth","getBoundingClientRect","undefined","setAttribute","listBoxId","Math","random","toString","slice","blurHandler","e","onDelete","v","filter","item","optionsRef","selectedOptions","items","Array","isArray","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 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 * 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 titleUnborderedTitleStyles = (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 ${titleUnborderedTitleStyles};\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 disabled?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered', 'disabled')\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 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 inputSearchContainerRef = useRef<HTMLDivElement>(null);\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 useEffect(() => {\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 optionsRef = useRef(options);\n useEffect(() => {\n optionsRef.current = options;\n }, [options]);\n\n const selectedOptions = useMemo(() => {\n if (!forwardedValue) return [];\n const items = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n return items.map((v) => {\n const option = optionsRef.current.find((item) => item.value === v);\n return { title: option ? option.title || v : v, value: v };\n });\n }, [forwardedValue]);\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} disabled={disabled}>\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 ref={inputSearchContainerRef}>\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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"}
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","titleUnborderedTitleStyles","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","ToggleList","selectToggleListItemGap","DeleteButton","button","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","options","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","inputSearchContainerRef","setOpened","forwardedValue","setForwardedValue","current","focus","onCloseRef","resizeHandler","window","requestAnimationFrame","nextWidth","getBoundingClientRect","undefined","setAttribute","listBoxId","Math","random","toString","slice","blurHandler","e","onDelete","v","filter","item","optionsRef","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 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 * 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 titleUnborderedTitleStyles = (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 ${titleUnborderedTitleStyles};\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 disabled?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered', 'disabled')\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 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 inputSearchContainerRef = useRef<HTMLDivElement>(null);\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 useEffect(() => {\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 optionsRef = useRef(options);\n useEffect(() => {\n optionsRef.current = options;\n }, [options]);\n\n const prevSelectedOptions = useRef<Array<{ title: string; value: string }>>(\n []\n );\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 = [...prevSelectedOptions.current, ...optionsRef.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return { title: option ? option.title || v : v, value: v };\n });\n }, [forwardedValue]);\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} disabled={disabled}>\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 ref={inputSearchContainerRef}>\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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"}
@@ -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.216",
3
+ "version": "1.0.217",
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": "595265cca98553b90cc523902b00f589af8e0404"
62
+ "gitHead": "3c9442ad2a7ef756330e2915674b29c8bcfc9ef8"
63
63
  }
@@ -565,17 +565,28 @@ const Select = forwardRef<HTMLDivElement, SelectProps>(
565
565
  optionsRef.current = options;
566
566
  }, [options]);
567
567
 
568
- const selectedOptions = useMemo(() => {
568
+ const prevSelectedOptions = useRef<Array<{ title: string; value: string }>>(
569
+ []
570
+ );
571
+
572
+ const selectedOptions = useMemo<
573
+ Array<{ title: string; value: string }>
574
+ >(() => {
569
575
  if (!forwardedValue) return [];
570
- const items = Array.isArray(forwardedValue)
576
+ const values = Array.isArray(forwardedValue)
571
577
  ? forwardedValue
572
578
  : [forwardedValue];
573
- return items.map((v) => {
574
- const option = optionsRef.current.find((item) => item.value === v);
579
+ const items = [...prevSelectedOptions.current, ...optionsRef.current];
580
+ return values.map((v) => {
581
+ const option = items.find((item) => item.value === v);
575
582
  return { title: option ? option.title || v : v, value: v };
576
583
  });
577
584
  }, [forwardedValue]);
578
585
 
586
+ useEffect(() => {
587
+ prevSelectedOptions.current = selectedOptions;
588
+ }, [selectedOptions]);
589
+
579
590
  const toggleContent = useMemo(() => {
580
591
  if (multiple) {
581
592
  if (!forwardedValue || forwardedValue.length === 0) {