@os-design/core 1.0.222 → 1.0.224
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/Select/index.js
CHANGED
|
@@ -266,15 +266,11 @@ var Select = /*#__PURE__*/(0, _react2.forwardRef)(function (_ref, ref) {
|
|
|
266
266
|
return item !== v;
|
|
267
267
|
}));
|
|
268
268
|
}, [forwardedValue, multiple, setForwardedValue]);
|
|
269
|
-
var optionsRef = (0, _react2.useRef)(options);
|
|
270
|
-
(0, _react2.useEffect)(function () {
|
|
271
|
-
optionsRef.current = options;
|
|
272
|
-
}, [options]);
|
|
273
269
|
var prevSelectedOptions = (0, _react2.useRef)(initSelectedOptions);
|
|
274
270
|
var selectedOptions = (0, _react2.useMemo)(function () {
|
|
275
271
|
if (!forwardedValue) return [];
|
|
276
272
|
var values = Array.isArray(forwardedValue) ? forwardedValue : [forwardedValue];
|
|
277
|
-
var items = [].concat(_toConsumableArray(
|
|
273
|
+
var items = [].concat(_toConsumableArray(options), _toConsumableArray(prevSelectedOptions.current));
|
|
278
274
|
return values.map(function (v) {
|
|
279
275
|
var option = items.find(function (item) {
|
|
280
276
|
return item.value === v;
|
|
@@ -284,7 +280,7 @@ var Select = /*#__PURE__*/(0, _react2.forwardRef)(function (_ref, ref) {
|
|
|
284
280
|
value: v
|
|
285
281
|
};
|
|
286
282
|
});
|
|
287
|
-
}, [forwardedValue]);
|
|
283
|
+
}, [forwardedValue, options]);
|
|
288
284
|
(0, _react2.useEffect)(function () {
|
|
289
285
|
prevSelectedOptions.current = selectedOptions;
|
|
290
286
|
}, [selectedOptions]);
|
|
@@ -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","e","r","t","keys","getOwnPropertySymbols","o","filter","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","minLen","n","toString","slice","constructor","name","test","len","arr2","l","u","a","f","next","done","_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","exports","styled","InputContainer","omitEmotionProps","SelectMenu","Menu","m","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","ellipsisStyles","Placeholder","span","inputColorPlaceholder","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","_ref$initSelectedOpti","initSelectedOptions","left","_ref$leftHasPadding","leftHasPadding","right","_ref$rightHasPadding","rightHasPadding","placeholder","_ref$searchVisible","searchVisible","_ref$searchProps","searchProps","_ref$notFoundText","notFoundText","_ref$unbordered","_ref$loading","loading","_ref$disabled","_ref$autoFocus","autoFocus","_ref$autoOpen","autoOpen","_ref$clearVisible","clearVisible","_ref$threshold","threshold","_ref$visibleCount","visibleCount","_ref$overscanCount","overscanCount","_ref$multiple","multiple","_ref$maxSelectedItems","maxSelectedItems","_ref$locale","locale","defaultLocale","defaultValue","onChange","_ref$onLoadNext","onLoadNext","_ref$onClose","onClose","_ref$onBlur","onBlur","size","placement","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","containerRef","mergedContainerRef","_useState","useState","_useState2","setWidth","_useState3","_useState4","setOpened","_useForwardedState","useForwardedState","_useForwardedState2","forwardedValue","setForwardedValue","useEffect","_containerRef$current","current","focus","onCloseRef","useRef","resizeHandler","useCallback","window","requestAnimationFrame","nextWidth","getBoundingClientRect","useBrowserLayoutEffect","useResizeObserver","useEvent","setAttribute","listBoxId","useMemo","Math","random","blurHandler","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","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 * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst 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}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n useEffect(\n () => () => {\n if (opened) onCloseRef.current();\n },\n [opened]\n );\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<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...prevSelectedOptions.current, ...optionsRef.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title || v : v,\n value: v,\n };\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}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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"}
|
|
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","e","r","t","keys","getOwnPropertySymbols","o","filter","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","minLen","n","toString","slice","constructor","name","test","len","arr2","l","u","a","f","next","done","_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","exports","styled","InputContainer","omitEmotionProps","SelectMenu","Menu","m","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","ellipsisStyles","Placeholder","span","inputColorPlaceholder","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","_ref$initSelectedOpti","initSelectedOptions","left","_ref$leftHasPadding","leftHasPadding","right","_ref$rightHasPadding","rightHasPadding","placeholder","_ref$searchVisible","searchVisible","_ref$searchProps","searchProps","_ref$notFoundText","notFoundText","_ref$unbordered","_ref$loading","loading","_ref$disabled","_ref$autoFocus","autoFocus","_ref$autoOpen","autoOpen","_ref$clearVisible","clearVisible","_ref$threshold","threshold","_ref$visibleCount","visibleCount","_ref$overscanCount","overscanCount","_ref$multiple","multiple","_ref$maxSelectedItems","maxSelectedItems","_ref$locale","locale","defaultLocale","defaultValue","onChange","_ref$onLoadNext","onLoadNext","_ref$onClose","onClose","_ref$onBlur","onBlur","size","placement","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","containerRef","mergedContainerRef","_useState","useState","_useState2","setWidth","_useState3","_useState4","setOpened","_useForwardedState","useForwardedState","_useForwardedState2","forwardedValue","setForwardedValue","useEffect","_containerRef$current","current","focus","onCloseRef","useRef","resizeHandler","useCallback","window","requestAnimationFrame","nextWidth","getBoundingClientRect","useBrowserLayoutEffect","useResizeObserver","useEvent","setAttribute","listBoxId","useMemo","Math","random","blurHandler","onDelete","v","item","prevSelectedOptions","selectedOptions","values","items","map","option","find","title","toggleContent","createElement","_ref2","onClick","stopPropagation","onKeyDown","deleteLabel","Close","toggleShowClearButton","toggleOnClear","toggleRightValue","Loading","type","wide","clearLabel","Up","Down","toggleRightHasPaddingValue","onSelect","includes","windowSize","useSize","isMinXs","useIsMinWidth","fontSize","useFontSize","document","body","_useTheme","useTheme","scaleFactor","s","sizes","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","useRWLoadNext","itemCount","InnerElement","_ref3","style","innerElementRest","parseFloat","role","id","listItemFn","_ref4","index","_options$index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","ThemeOverrider","overrides","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","FixedSizeList","onScroll","_ref5","scrollOffset","innerElementType","displayName","_default"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n title?: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst 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}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n useEffect(\n () => () => {\n if (opened) onCloseRef.current();\n },\n [opened]\n );\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title || v : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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"}
|
package/dist/esm/Select/index.js
CHANGED
|
@@ -271,15 +271,11 @@ const Select = /*#__PURE__*/forwardRef(({
|
|
|
271
271
|
if (!multiple) return;
|
|
272
272
|
setForwardedValue((forwardedValue || []).filter(item => item !== v));
|
|
273
273
|
}, [forwardedValue, multiple, setForwardedValue]);
|
|
274
|
-
const optionsRef = useRef(options);
|
|
275
|
-
useEffect(() => {
|
|
276
|
-
optionsRef.current = options;
|
|
277
|
-
}, [options]);
|
|
278
274
|
const prevSelectedOptions = useRef(initSelectedOptions);
|
|
279
275
|
const selectedOptions = useMemo(() => {
|
|
280
276
|
if (!forwardedValue) return [];
|
|
281
277
|
const values = Array.isArray(forwardedValue) ? forwardedValue : [forwardedValue];
|
|
282
|
-
const items = [...
|
|
278
|
+
const items = [...options, ...prevSelectedOptions.current];
|
|
283
279
|
return values.map(v => {
|
|
284
280
|
const option = items.find(item => item.value === v);
|
|
285
281
|
return {
|
|
@@ -287,7 +283,7 @@ const Select = /*#__PURE__*/forwardRef(({
|
|
|
287
283
|
value: v
|
|
288
284
|
};
|
|
289
285
|
});
|
|
290
|
-
}, [forwardedValue]);
|
|
286
|
+
}, [forwardedValue, options]);
|
|
291
287
|
useEffect(() => {
|
|
292
288
|
prevSelectedOptions.current = selectedOptions;
|
|
293
289
|
}, [selectedOptions]);
|
|
@@ -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","initSelectedOptions","left","leftHasPadding","right","rightHasPadding","placeholder","searchVisible","searchProps","notFoundText","loading","autoFocus","autoOpen","clearVisible","threshold","visibleCount","overscanCount","multiple","maxSelectedItems","locale","value","defaultValue","onChange","onLoadNext","onClose","onBlur","size","placement","rest","ref","containerRef","mergedContainerRef","setWidth","setOpened","forwardedValue","setForwardedValue","current","focus","onCloseRef","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 * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst 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}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n useEffect(\n () => () => {\n if (opened) onCloseRef.current();\n },\n [opened]\n );\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<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...prevSelectedOptions.current, ...optionsRef.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title || v : v,\n value: v,\n };\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}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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"}
|
|
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","initSelectedOptions","left","leftHasPadding","right","rightHasPadding","placeholder","searchVisible","searchProps","notFoundText","loading","autoFocus","autoOpen","clearVisible","threshold","visibleCount","overscanCount","multiple","maxSelectedItems","locale","value","defaultValue","onChange","onLoadNext","onClose","onBlur","size","placement","rest","ref","containerRef","mergedContainerRef","setWidth","setOpened","forwardedValue","setForwardedValue","current","focus","onCloseRef","resizeHandler","window","requestAnimationFrame","nextWidth","getBoundingClientRect","undefined","setAttribute","listBoxId","Math","random","toString","slice","blurHandler","e","onDelete","v","filter","item","prevSelectedOptions","selectedOptions","values","Array","isArray","items","map","option","find","title","toggleContent","length","createElement","key","onClick","stopPropagation","onKeyDown","deleteLabel","toggleShowClearButton","toggleOnClear","toggleRightValue","type","wide","clearLabel","toggleRightHasPaddingValue","onSelect","includes","windowSize","isMinXs","fontSize","document","body","scaleFactor","s","sizes","Number","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","itemCount","InnerElement","style","innerElementRest","_extends","parseFloat","role","id","listItemFn","index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","overrides","t","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","onScroll","scrollOffset","innerElementType","displayName"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n title?: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst 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}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n useEffect(\n () => () => {\n if (opened) onCloseRef.current();\n },\n [opened]\n );\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title || v : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Select/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Select/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@os-design/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.224",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": "git@gitlab.com:os-team/libs/os-design.git",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"react": ">=18",
|
|
60
60
|
"react-dom": ">=18"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "02cb9d1671282887a9000edde58849e67165b4ea"
|
|
63
63
|
}
|
package/src/Select/index.tsx
CHANGED
|
@@ -569,11 +569,6 @@ const Select = forwardRef<HTMLDivElement, SelectProps>(
|
|
|
569
569
|
[forwardedValue, multiple, setForwardedValue]
|
|
570
570
|
);
|
|
571
571
|
|
|
572
|
-
const optionsRef = useRef(options);
|
|
573
|
-
useEffect(() => {
|
|
574
|
-
optionsRef.current = options;
|
|
575
|
-
}, [options]);
|
|
576
|
-
|
|
577
572
|
const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);
|
|
578
573
|
|
|
579
574
|
const selectedOptions = useMemo<
|
|
@@ -583,7 +578,7 @@ const Select = forwardRef<HTMLDivElement, SelectProps>(
|
|
|
583
578
|
const values = Array.isArray(forwardedValue)
|
|
584
579
|
? forwardedValue
|
|
585
580
|
: [forwardedValue];
|
|
586
|
-
const items = [...
|
|
581
|
+
const items = [...options, ...prevSelectedOptions.current];
|
|
587
582
|
return values.map((v) => {
|
|
588
583
|
const option = items.find((item) => item.value === v);
|
|
589
584
|
return {
|
|
@@ -591,7 +586,7 @@ const Select = forwardRef<HTMLDivElement, SelectProps>(
|
|
|
591
586
|
value: v,
|
|
592
587
|
};
|
|
593
588
|
});
|
|
594
|
-
}, [forwardedValue]);
|
|
589
|
+
}, [forwardedValue, options]);
|
|
595
590
|
|
|
596
591
|
useEffect(() => {
|
|
597
592
|
prevSelectedOptions.current = selectedOptions;
|