@activecollab/components 1.0.363 → 1.0.365
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/components/ComboBox/ComboBox.js +2 -2
- package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/cjs/components/Select/Option/Option.js.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.js +2 -2
- package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/esm/components/Select/Option/Option.d.ts +2 -0
- package/dist/esm/components/Select/Option/Option.d.ts.map +1 -1
- package/dist/esm/components/Select/Option/Option.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -260,10 +260,10 @@ var ComboBox = function ComboBox(_ref) {
|
|
|
260
260
|
label: option.name,
|
|
261
261
|
key: index,
|
|
262
262
|
backgroundColor: option.color,
|
|
263
|
-
color:
|
|
263
|
+
color: option.chipColor,
|
|
264
264
|
onClose: showOnClose ? onClose : undefined,
|
|
265
265
|
size: size,
|
|
266
|
-
variant: "
|
|
266
|
+
variant: "Body 2"
|
|
267
267
|
});
|
|
268
268
|
}, [disabled, onChange, renderChip, selected, size]);
|
|
269
269
|
var autoSize = (0, _react.useMemo)(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","names":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","focused","setFocused","handleOnChange","useCallback","e","target","childNode","useRef","elementRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","useIsFirstRender","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","classNames","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n onClear?.();\n } else {\n onChange?.(\"\");\n onClear?.();\n }\n\n setOpen(false);\n },\n [type, onChange, onClear]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color=\"#303037\"\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComboBox.js","names":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","focused","setFocused","handleOnChange","useCallback","e","target","childNode","useRef","elementRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","useIsFirstRender","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","chipColor","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","classNames","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n onClear?.();\n } else {\n onChange?.(\"\");\n onClear?.();\n }\n\n setOpen(false);\n },\n [type, onChange, onClear]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Body 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.js","names":["Option","forwardRef","ref","id","name","hover","className","renderOption","onMouseEnter","onClick","handleOnMouseEnter","useCallback","classnames","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { StyledOption } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Additional info right-side of name */\n additionalInfo?: string;\n /** image url for Avatar or MultiAvatar */\n image?: string | string[];\n /** Hex color for label */\n color?: string;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Hovered state */\n hover?: boolean;\n /** Class name of option */\n className?: string;\n /** Render option function */\n renderOption?: ReactNode;\n /** On mouse enter callback */\n onMouseEnter?: (e: string | number | undefined) => void;\n /** On mouse click */\n onClick?: MouseEventHandler<HTMLLIElement>;\n}\n\nexport const Option = forwardRef(\n (\n {\n id,\n name,\n hover,\n className,\n renderOption,\n onMouseEnter,\n onClick = () => null,\n }: IAdditionalOptionItemProps,\n ref: Ref<HTMLLIElement>\n ) => {\n const handleOnMouseEnter = useCallback(() => {\n if (onMouseEnter) {\n onMouseEnter(id);\n }\n }, [onMouseEnter, id]);\n\n return (\n <StyledOption\n ref={hover ? ref : null}\n title={name}\n onMouseEnter={handleOnMouseEnter}\n className={classnames(\"c-option\", className)}\n hover={hover}\n onClick={onClick}\n >\n {renderOption ? renderOption : name}\n </StyledOption>\n );\n }\n);\n\nOption.displayName = \"Option\";\n"],"mappings":";;;;;;;AAAA;AAOA;AACA;AAAwC;AAAA;AAAA;
|
|
1
|
+
{"version":3,"file":"Option.js","names":["Option","forwardRef","ref","id","name","hover","className","renderOption","onMouseEnter","onClick","handleOnMouseEnter","useCallback","classnames","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { StyledOption } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Additional info right-side of name */\n additionalInfo?: string;\n /** image url for Avatar or MultiAvatar */\n image?: string | string[];\n /** Hex color for label */\n color?: string;\n /** Color for chip label */\n chipColor?: string;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Hovered state */\n hover?: boolean;\n /** Class name of option */\n className?: string;\n /** Render option function */\n renderOption?: ReactNode;\n /** On mouse enter callback */\n onMouseEnter?: (e: string | number | undefined) => void;\n /** On mouse click */\n onClick?: MouseEventHandler<HTMLLIElement>;\n}\n\nexport const Option = forwardRef(\n (\n {\n id,\n name,\n hover,\n className,\n renderOption,\n onMouseEnter,\n onClick = () => null,\n }: IAdditionalOptionItemProps,\n ref: Ref<HTMLLIElement>\n ) => {\n const handleOnMouseEnter = useCallback(() => {\n if (onMouseEnter) {\n onMouseEnter(id);\n }\n }, [onMouseEnter, id]);\n\n return (\n <StyledOption\n ref={hover ? ref : null}\n title={name}\n onMouseEnter={handleOnMouseEnter}\n className={classnames(\"c-option\", className)}\n hover={hover}\n onClick={onClick}\n >\n {renderOption ? renderOption : name}\n </StyledOption>\n );\n }\n);\n\nOption.displayName = \"Option\";\n"],"mappings":";;;;;;;AAAA;AAOA;AACA;AAAwC;AAAA;AAAA;AAkCjC,IAAMA,MAAM,gBAAG,IAAAC,iBAAU,EAC9B,gBAUEC,GAAuB,EACpB;EAAA,IATDC,EAAE,QAAFA,EAAE;IACFC,IAAI,QAAJA,IAAI;IACJC,KAAK,QAALA,KAAK;IACLC,SAAS,QAATA,SAAS;IACTC,YAAY,QAAZA,YAAY;IACZC,YAAY,QAAZA,YAAY;IAAA,oBACZC,OAAO;IAAPA,OAAO,6BAAG;MAAA,OAAM,IAAI;IAAA;EAItB,IAAMC,kBAAkB,GAAG,IAAAC,kBAAW,EAAC,YAAM;IAC3C,IAAIH,YAAY,EAAE;MAChBA,YAAY,CAACL,EAAE,CAAC;IAClB;EACF,CAAC,EAAE,CAACK,YAAY,EAAEL,EAAE,CAAC,CAAC;EAEtB,oBACE,6BAAC,oBAAY;IACX,GAAG,EAAEE,KAAK,GAAGH,GAAG,GAAG,IAAK;IACxB,KAAK,EAAEE,IAAK;IACZ,YAAY,EAAEM,kBAAmB;IACjC,SAAS,EAAE,IAAAE,mBAAU,EAAC,UAAU,EAAEN,SAAS,CAAE;IAC7C,KAAK,EAAED,KAAM;IACb,OAAO,EAAEI;EAAQ,GAEhBF,YAAY,GAAGA,YAAY,GAAGH,IAAI,CACtB;AAEnB,CAAC,CACF;AAAC;AAEFJ,MAAM,CAACa,WAAW,GAAG,QAAQ"}
|
|
@@ -240,10 +240,10 @@ export var ComboBox = function ComboBox(_ref) {
|
|
|
240
240
|
label: option.name,
|
|
241
241
|
key: index,
|
|
242
242
|
backgroundColor: option.color,
|
|
243
|
-
color:
|
|
243
|
+
color: option.chipColor,
|
|
244
244
|
onClose: showOnClose ? onClose : undefined,
|
|
245
245
|
size: size,
|
|
246
|
-
variant: "
|
|
246
|
+
variant: "Body 2"
|
|
247
247
|
});
|
|
248
248
|
}, [disabled, onChange, renderChip, selected, size]);
|
|
249
249
|
var autoSize = useMemo(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","useIsFirstRender","MultiAvatar","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","prop","selectedName","value","map","v","find","q","id","name","setValue","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","current","contains","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n onClear?.();\n } else {\n onChange?.(\"\");\n onClear?.();\n }\n\n setOpen(false);\n },\n [type, onChange, onClear]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color=\"#303037\"\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","useIsFirstRender","MultiAvatar","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","prop","selectedName","value","map","v","find","q","id","name","setValue","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","current","contains","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","chipColor","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n onClear?.();\n } else {\n onChange?.(\"\");\n onClear?.();\n }\n\n setOpen(false);\n },\n [type, onChange, onClear]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Body 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/Option/Option.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,iBAAiB,EACjB,SAAS,EAGV,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/Option/Option.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,iBAAiB,EACjB,SAAS,EAGV,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,0BAA0B;IAClC,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACxD,qBAAqB;IACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,MAAM,kGAgClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.js","names":["React","forwardRef","useCallback","classnames","StyledOption","Option","ref","id","name","hover","className","renderOption","onMouseEnter","onClick","handleOnMouseEnter","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { StyledOption } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Additional info right-side of name */\n additionalInfo?: string;\n /** image url for Avatar or MultiAvatar */\n image?: string | string[];\n /** Hex color for label */\n color?: string;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Hovered state */\n hover?: boolean;\n /** Class name of option */\n className?: string;\n /** Render option function */\n renderOption?: ReactNode;\n /** On mouse enter callback */\n onMouseEnter?: (e: string | number | undefined) => void;\n /** On mouse click */\n onClick?: MouseEventHandler<HTMLLIElement>;\n}\n\nexport const Option = forwardRef(\n (\n {\n id,\n name,\n hover,\n className,\n renderOption,\n onMouseEnter,\n onClick = () => null,\n }: IAdditionalOptionItemProps,\n ref: Ref<HTMLLIElement>\n ) => {\n const handleOnMouseEnter = useCallback(() => {\n if (onMouseEnter) {\n onMouseEnter(id);\n }\n }, [onMouseEnter, id]);\n\n return (\n <StyledOption\n ref={hover ? ref : null}\n title={name}\n onMouseEnter={handleOnMouseEnter}\n className={classnames(\"c-option\", className)}\n hover={hover}\n onClick={onClick}\n >\n {renderOption ? renderOption : name}\n </StyledOption>\n );\n }\n);\n\nOption.displayName = \"Option\";\n"],"mappings":"AAAA,OAAOA,KAAK,IACVC,UAAU,EAIVC,WAAW,QACN,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,YAAY,QAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"Option.js","names":["React","forwardRef","useCallback","classnames","StyledOption","Option","ref","id","name","hover","className","renderOption","onMouseEnter","onClick","handleOnMouseEnter","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { StyledOption } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Additional info right-side of name */\n additionalInfo?: string;\n /** image url for Avatar or MultiAvatar */\n image?: string | string[];\n /** Hex color for label */\n color?: string;\n /** Color for chip label */\n chipColor?: string;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Hovered state */\n hover?: boolean;\n /** Class name of option */\n className?: string;\n /** Render option function */\n renderOption?: ReactNode;\n /** On mouse enter callback */\n onMouseEnter?: (e: string | number | undefined) => void;\n /** On mouse click */\n onClick?: MouseEventHandler<HTMLLIElement>;\n}\n\nexport const Option = forwardRef(\n (\n {\n id,\n name,\n hover,\n className,\n renderOption,\n onMouseEnter,\n onClick = () => null,\n }: IAdditionalOptionItemProps,\n ref: Ref<HTMLLIElement>\n ) => {\n const handleOnMouseEnter = useCallback(() => {\n if (onMouseEnter) {\n onMouseEnter(id);\n }\n }, [onMouseEnter, id]);\n\n return (\n <StyledOption\n ref={hover ? ref : null}\n title={name}\n onMouseEnter={handleOnMouseEnter}\n className={classnames(\"c-option\", className)}\n hover={hover}\n onClick={onClick}\n >\n {renderOption ? renderOption : name}\n </StyledOption>\n );\n }\n);\n\nOption.displayName = \"Option\";\n"],"mappings":"AAAA,OAAOA,KAAK,IACVC,UAAU,EAIVC,WAAW,QACN,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,YAAY,QAAQ,UAAU;AAkCvC,OAAO,IAAMC,MAAM,gBAAGJ,UAAU,CAC9B,gBAUEK,GAAuB,EACpB;EAAA,IATDC,EAAE,QAAFA,EAAE;IACFC,IAAI,QAAJA,IAAI;IACJC,KAAK,QAALA,KAAK;IACLC,SAAS,QAATA,SAAS;IACTC,YAAY,QAAZA,YAAY;IACZC,YAAY,QAAZA,YAAY;IAAA,oBACZC,OAAO;IAAPA,OAAO,6BAAG;MAAA,OAAM,IAAI;IAAA;EAItB,IAAMC,kBAAkB,GAAGZ,WAAW,CAAC,YAAM;IAC3C,IAAIU,YAAY,EAAE;MAChBA,YAAY,CAACL,EAAE,CAAC;IAClB;EACF,CAAC,EAAE,CAACK,YAAY,EAAEL,EAAE,CAAC,CAAC;EAEtB,oBACE,oBAAC,YAAY;IACX,GAAG,EAAEE,KAAK,GAAGH,GAAG,GAAG,IAAK;IACxB,KAAK,EAAEE,IAAK;IACZ,YAAY,EAAEM,kBAAmB;IACjC,SAAS,EAAEX,UAAU,CAAC,UAAU,EAAEO,SAAS,CAAE;IAC7C,KAAK,EAAED,KAAM;IACb,OAAO,EAAEI;EAAQ,GAEhBF,YAAY,GAAGA,YAAY,GAAGH,IAAI,CACtB;AAEnB,CAAC,CACF;AAEDH,MAAM,CAACU,WAAW,GAAG,QAAQ"}
|
package/dist/index.js
CHANGED
|
@@ -14972,10 +14972,10 @@
|
|
|
14972
14972
|
label: option.name,
|
|
14973
14973
|
key: index,
|
|
14974
14974
|
backgroundColor: option.color,
|
|
14975
|
-
color:
|
|
14975
|
+
color: option.chipColor,
|
|
14976
14976
|
onClose: showOnClose ? onClose : undefined,
|
|
14977
14977
|
size: size,
|
|
14978
|
-
variant: "
|
|
14978
|
+
variant: "Body 2"
|
|
14979
14979
|
});
|
|
14980
14980
|
}, [disabled, onChange, renderChip, selected, size]);
|
|
14981
14981
|
var autoSize = React.useMemo(function () {
|