@activecollab/components 2.0.242 → 2.0.244

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","useVirtualizer","handleKeyboardMovement","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteScrollShadow","highlightText","Option","StyledOption","OptionGroup","isOptionGroup","item","options","undefined","Autocomplete","_ref","type","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","clearInputOnSelect","mixedOptions","filterCriteria","disableVirtualization","listContainerRef","itemRef","selectedOptions","Array","isArray","handleSort","opts","_opts$","isGrouped","sortOptions","a","b","aSelected","includes","id","bSelected","aMixed","bMixed","map","group","sortedGroupOptions","sort","sortList","_options$","sortedOptions","localeCompare","sortedList","setSortedList","hover","setHover","by","filter","setFilter","handleEmpty","e","button","_inputEl$current","current","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","filterOptions","trimmedFilter","matchesFilter","nameMatch","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","showNoResultCondition","virtualItems","items","push","forEach","index","shouldUseVirtualization","rowVirtualizer","count","getScrollElement","estimateSize","overscan","gap","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","createElement","checked","tooltip","renderOptions","onChange","ref","onMouseEnter","onClick","className","handleOnMouseLeave","findIndex","scrollToIndex","align","handleOnKeyDown","_inputEl$current2","listenerTarget","document","addEventListener","removeEventListener","isDefaultOptionSelected","renderVirtualItem","virtualItem","String","_StyledStyledOption","onMouseDown","$isHidden","_ref2","onScroll","onMouseLeave","style","height","Math","min","getTotalSize","overflow","width","position","getVirtualItems","virtualRow","top","left","transform","start","Fragment","displayName","_styled","withConfig","componentId"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n type FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n type ReactNode,\n type ReactElement,\n type MutableRefObject,\n} from \"react\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { type IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { type IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n /** Custom filter function for additional filtering criteria */\n filterCriteria?: (option: IOptionItemProps, filter: string) => boolean;\n disableVirtualization?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\ninterface VirtualItem {\n type: \"default\" | \"option\" | \"group\" | \"addNew\" | \"noResult\";\n id: string | number;\n item?: IOptionItemProps | IOptionGroupProps;\n index?: number;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n mixedOptions = [],\n filterCriteria,\n disableVirtualization,\n}) => {\n const listContainerRef = useRef<HTMLDivElement>(null);\n const itemRef = useRef<HTMLLIElement>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback(\n (opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => {\n const sortedGroupOptions = group.options.sort(sortOptions);\n\n return {\n ...group,\n options: sortedGroupOptions,\n };\n });\n } else {\n return opts.sort(sortOptions);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [mixedOptions, selectedOptions]\n );\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => {\n const sortedGroupOptions = group.options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return {\n ...group,\n options: handleSort(sortedGroupOptions),\n };\n });\n\n return handleSort(sortedOptions);\n } else {\n const sortedOptions = options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return handleSort(sortedOptions);\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const [sortedList, setSortedList] = useState(() => sortList(options));\n\n useEffect(() => {\n setSortedList(sortList(options));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.current?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n\n const matchesFilter = (option: IOptionItemProps) => {\n const nameMatch = option.name\n .toLowerCase()\n .includes(trimmedFilter.toLowerCase());\n\n if (filterCriteria && trimmedFilter) {\n return nameMatch || filterCriteria(option, trimmedFilter);\n }\n\n return nameMatch;\n };\n\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter(matchesFilter);\n\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter(matchesFilter);\n\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue, filterCriteria]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const showNoResultCondition = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n\n if (showDefaultOption) {\n items.push({\n type: \"default\",\n id: \"default\",\n });\n }\n\n list.forEach((item, index) => {\n if (isOptionGroup(item)) {\n items.push({\n type: \"group\",\n id: item.id,\n item,\n });\n\n item.options.forEach((option) => {\n items.push({\n type: \"option\",\n id: option.id,\n item: option,\n index,\n });\n });\n } else {\n items.push({\n type: \"option\",\n id: item.id,\n item,\n index,\n });\n }\n });\n\n if (showNoResultCondition) {\n items.push({\n type: \"noResult\",\n id: \"noResult\",\n });\n }\n\n if (showAddNew) {\n items.push({\n type: \"addNew\",\n id: \"addNew\",\n });\n }\n\n return items;\n }, [list, showDefaultOption, showNoResultCondition, showAddNew]);\n\n const shouldUseVirtualization =\n !disableVirtualization && virtualItems.length > 40;\n\n const rowVirtualizer = useVirtualizer({\n count: virtualItems.length,\n getScrollElement: () => listContainerRef.current,\n estimateSize: () => 28,\n overscan: 5,\n gap: 4,\n });\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n result = id;\n }\n if (clearInputOnSelect && inputEl?.current) {\n inputEl.current.value = \"\";\n inputEl.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n tooltip={item.tooltip}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={hover.item === item.id ? itemRef : null}\n key={index}\n tooltip={item.tooltip}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n mixedOptions,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const index = virtualItems.findIndex((item) => item.id === hover.item);\n if (index !== -1) {\n rowVirtualizer.scrollToIndex(index, { align: \"center\" });\n }\n }\n }, [hover, rowVirtualizer, virtualItems]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n const listenerTarget = inputEl?.current ?? document;\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const renderVirtualItem = useCallback(\n (virtualItem: VirtualItem, index: number) => {\n switch (virtualItem.type) {\n case \"default\":\n return (\n <Option\n name={String(defaultValue)}\n ref={hover.item === null ? itemRef : null}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"group\":\n if (!virtualItem.item || !isOptionGroup(virtualItem.item))\n return null;\n return (\n <OptionGroup\n checked={selectedOptions}\n name={virtualItem.item.name}\n tooltip={virtualItem.item.tooltip}\n key={virtualItem.item.id}\n setHover={handleHoverCallback}\n id={virtualItem.item.id}\n hover={hover.item}\n options={virtualItem.item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n\n case \"option\":\n if (!virtualItem.item || isOptionGroup(virtualItem.item)) return null;\n return (\n <Option\n name={(virtualItem.item as IOptionItemProps).name}\n ref={hover.item === virtualItem.id ? itemRef : null}\n key={index}\n tooltip={(virtualItem.item as IOptionItemProps).tooltip}\n onMouseEnter={() => handleMouseEnter(virtualItem.id)}\n onClick={handleClick}\n id={virtualItem.id}\n hover={virtualItem.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n {\n ...(virtualItem.item as IOptionItemProps),\n name: highlightText(\n (virtualItem.item as IOptionItemProps).name,\n filter\n ),\n },\n {\n id: `option_${virtualItem.id}`,\n checked:\n selectedOptions && selectedOptions.includes(virtualItem.id),\n hover: hover.item === virtualItem.id,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"noResult\":\n return <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>;\n\n case \"addNew\":\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n\n default:\n return null;\n }\n },\n [\n defaultValue,\n hover.item,\n handleMouseEnter,\n renderOption,\n isDefaultOptionSelected,\n selectedOptions,\n handleHoverCallback,\n handleRenderOption,\n type,\n handleChange,\n filter,\n mixedOptions,\n handleClick,\n optionClassName,\n noResultText,\n handleEmpty,\n onAddNewMouseEnter,\n emptyValue,\n toggleSelected,\n ]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <div\n ref={listContainerRef}\n style={{\n height: `${Math.min(\n rowVirtualizer.getTotalSize() + 12,\n autoHeightMax\n )}px`,\n overflow: \"auto\",\n }}\n onScroll={(e) => {\n if (onScroll) onScroll(e);\n }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {shouldUseVirtualization\n ? rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const item = virtualItems[virtualRow.index];\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n {renderVirtualItem(item, virtualRow.index)}\n </div>\n );\n })\n : virtualItems.map((item, index) => (\n <React.Fragment key={index}>\n {renderVirtualItem(item, index)}\n </React.Fragment>\n ))}\n </div>\n </div>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Autocomplete.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","useVirtualizer","handleKeyboardMovement","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteScrollShadow","highlightText","Option","StyledOption","OptionGroup","isOptionGroup","item","options","undefined","Autocomplete","_ref","type","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","clearInputOnSelect","mixedOptions","filterCriteria","disableVirtualization","listContainerRef","itemRef","selectedOptions","Array","isArray","handleSort","opts","_opts$","isGrouped","sortOptions","a","b","aSelected","includes","id","bSelected","aMixed","bMixed","map","group","sortedGroupOptions","sort","sortList","_options$","sortedOptions","localeCompare","sortedList","setSortedList","hover","setHover","by","filter","setFilter","handleEmpty","e","button","_inputEl$current","current","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","filterOptions","trimmedFilter","matchesFilter","hidden","nameMatch","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","showNoResultCondition","virtualItems","items","push","forEach","index","shouldUseVirtualization","rowVirtualizer","count","getScrollElement","estimateSize","overscan","gap","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","createElement","checked","tooltip","renderOptions","onChange","ref","onMouseEnter","onClick","className","handleOnMouseLeave","findIndex","scrollToIndex","align","handleOnKeyDown","_inputEl$current2","listenerTarget","document","addEventListener","removeEventListener","isDefaultOptionSelected","renderVirtualItem","virtualItem","String","_StyledStyledOption","onMouseDown","$isHidden","_ref2","onScroll","onMouseLeave","style","height","Math","min","getTotalSize","overflow","width","position","getVirtualItems","virtualRow","top","left","transform","start","Fragment","displayName","_styled","withConfig","componentId"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n type FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n type ReactNode,\n type ReactElement,\n type MutableRefObject,\n} from \"react\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { type IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { type IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n /** Custom filter function for additional filtering criteria */\n filterCriteria?: (option: IOptionItemProps, filter: string) => boolean;\n disableVirtualization?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\ninterface VirtualItem {\n type: \"default\" | \"option\" | \"group\" | \"addNew\" | \"noResult\";\n id: string | number;\n item?: IOptionItemProps | IOptionGroupProps;\n index?: number;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n mixedOptions = [],\n filterCriteria,\n disableVirtualization,\n}) => {\n const listContainerRef = useRef<HTMLDivElement>(null);\n const itemRef = useRef<HTMLLIElement>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback(\n (opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => {\n const sortedGroupOptions = group.options.sort(sortOptions);\n\n return {\n ...group,\n options: sortedGroupOptions,\n };\n });\n } else {\n return opts.sort(sortOptions);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [mixedOptions, selectedOptions]\n );\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => {\n const sortedGroupOptions = group.options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return {\n ...group,\n options: handleSort(sortedGroupOptions),\n };\n });\n\n return handleSort(sortedOptions);\n } else {\n const sortedOptions = options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return handleSort(sortedOptions);\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const [sortedList, setSortedList] = useState(() => sortList(options));\n\n useEffect(() => {\n setSortedList(sortList(options));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.current?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n\n const matchesFilter = (option: IOptionItemProps) => {\n if (option.hidden) {\n return false;\n }\n\n const nameMatch = option.name\n .toLowerCase()\n .includes(trimmedFilter.toLowerCase());\n\n if (filterCriteria && trimmedFilter) {\n return nameMatch || filterCriteria(option, trimmedFilter);\n }\n\n return nameMatch;\n };\n\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter(matchesFilter);\n\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter(matchesFilter);\n\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue, filterCriteria]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const showNoResultCondition = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n\n if (showDefaultOption) {\n items.push({\n type: \"default\",\n id: \"default\",\n });\n }\n\n list.forEach((item, index) => {\n if (isOptionGroup(item)) {\n items.push({\n type: \"group\",\n id: item.id,\n item,\n });\n\n item.options.forEach((option) => {\n items.push({\n type: \"option\",\n id: option.id,\n item: option,\n index,\n });\n });\n } else {\n items.push({\n type: \"option\",\n id: item.id,\n item,\n index,\n });\n }\n });\n\n if (showNoResultCondition) {\n items.push({\n type: \"noResult\",\n id: \"noResult\",\n });\n }\n\n if (showAddNew) {\n items.push({\n type: \"addNew\",\n id: \"addNew\",\n });\n }\n\n return items;\n }, [list, showDefaultOption, showNoResultCondition, showAddNew]);\n\n const shouldUseVirtualization =\n !disableVirtualization && virtualItems.length > 40;\n\n const rowVirtualizer = useVirtualizer({\n count: virtualItems.length,\n getScrollElement: () => listContainerRef.current,\n estimateSize: () => 28,\n overscan: 5,\n gap: 4,\n });\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n result = id;\n }\n if (clearInputOnSelect && inputEl?.current) {\n inputEl.current.value = \"\";\n inputEl.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n tooltip={item.tooltip}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={hover.item === item.id ? itemRef : null}\n key={index}\n tooltip={item.tooltip}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n mixedOptions,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const index = virtualItems.findIndex((item) => item.id === hover.item);\n if (index !== -1) {\n rowVirtualizer.scrollToIndex(index, { align: \"center\" });\n }\n }\n }, [hover, rowVirtualizer, virtualItems]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n const listenerTarget = inputEl?.current ?? document;\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const renderVirtualItem = useCallback(\n (virtualItem: VirtualItem, index: number) => {\n switch (virtualItem.type) {\n case \"default\":\n return (\n <Option\n name={String(defaultValue)}\n ref={hover.item === null ? itemRef : null}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"group\":\n if (!virtualItem.item || !isOptionGroup(virtualItem.item))\n return null;\n return (\n <OptionGroup\n checked={selectedOptions}\n name={virtualItem.item.name}\n tooltip={virtualItem.item.tooltip}\n key={virtualItem.item.id}\n setHover={handleHoverCallback}\n id={virtualItem.item.id}\n hover={hover.item}\n options={virtualItem.item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n\n case \"option\":\n if (!virtualItem.item || isOptionGroup(virtualItem.item)) return null;\n return (\n <Option\n name={(virtualItem.item as IOptionItemProps).name}\n ref={hover.item === virtualItem.id ? itemRef : null}\n key={index}\n tooltip={(virtualItem.item as IOptionItemProps).tooltip}\n onMouseEnter={() => handleMouseEnter(virtualItem.id)}\n onClick={handleClick}\n id={virtualItem.id}\n hover={virtualItem.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n {\n ...(virtualItem.item as IOptionItemProps),\n name: highlightText(\n (virtualItem.item as IOptionItemProps).name,\n filter\n ),\n },\n {\n id: `option_${virtualItem.id}`,\n checked:\n selectedOptions && selectedOptions.includes(virtualItem.id),\n hover: hover.item === virtualItem.id,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"noResult\":\n return <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>;\n\n case \"addNew\":\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n\n default:\n return null;\n }\n },\n [\n defaultValue,\n hover.item,\n handleMouseEnter,\n renderOption,\n isDefaultOptionSelected,\n selectedOptions,\n handleHoverCallback,\n handleRenderOption,\n type,\n handleChange,\n filter,\n mixedOptions,\n handleClick,\n optionClassName,\n noResultText,\n handleEmpty,\n onAddNewMouseEnter,\n emptyValue,\n toggleSelected,\n ]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <div\n ref={listContainerRef}\n style={{\n height: `${Math.min(\n rowVirtualizer.getTotalSize() + 12,\n autoHeightMax\n )}px`,\n overflow: \"auto\",\n }}\n onScroll={(e) => {\n if (onScroll) onScroll(e);\n }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {shouldUseVirtualization\n ? rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const item = virtualItems[virtualRow.index];\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n {renderVirtualItem(item, virtualRow.index)}\n </div>\n );\n })\n : virtualItems.map((item, index) => (\n <React.Fragment key={index}>\n {renderVirtualItem(item, index)}\n </React.Fragment>\n ))}\n </div>\n </div>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAOH,MAAM,OAAO,CAAC;AAqBf,OAAO,EACL,kBAAkB,EAEnB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKtD,OAAO,EAAqB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAahE,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,cAAc,GAAG,SAAS,GAAG,oBAAoB,CAClD;IACD,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CACT,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IACV,6BAA6B;IAC7B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EACtC,IAAI,EAAE,CAAC,EACP,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,KAClB,GAAG,CAAC,OAAO,CAAC;IACjB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,iBAAiB;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mBAAmB;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,cAAc,CAglBvC,CAAC"}
1
+ {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAOH,MAAM,OAAO,CAAC;AAqBf,OAAO,EACL,kBAAkB,EAEnB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKtD,OAAO,EAAqB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAahE,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,cAAc,GAAG,SAAS,GAAG,oBAAoB,CAClD;IACD,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CACT,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IACV,6BAA6B;IAC7B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EACtC,IAAI,EAAE,CAAC,EACP,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,KAClB,GAAG,CAAC,OAAO,CAAC;IACjB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,iBAAiB;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mBAAmB;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,cAAc,CA0lBvC,CAAC"}
@@ -316,10 +316,10 @@ export const ComboBox = _ref => {
316
316
  const hasSelected = type === "multiple" && Array.isArray(selected) && selected.length > 0;
317
317
  const showMenu = useMemo(() => {
318
318
  const hasOptions = (options == null ? void 0 : options.length) > 0;
319
- const valueExists = option => option.id.toString().includes(value) || option.name.includes(value);
319
+ const valueExists = option => (option.id.toString().includes(value) || option.name.includes(value)) && !(option != null && option.hidden);
320
320
  const isValueInOptions = options == null ? void 0 : options.some(option => isOptionGroup(option) ? option.options.some(valueExists) : valueExists(option));
321
- return hasOptions && (!!defaultValue || !value) || value && (isValueInOptions || emptyValue || noResultText);
322
- }, [defaultValue, emptyValue, noResultText, options, value]);
321
+ return hasOptions && (!!defaultValue || !value) || value && (isValueInOptions || emptyValue && !!handleEmptyAction || noResultText);
322
+ }, [defaultValue, emptyValue, handleEmptyAction, noResultText, options, value]);
323
323
  return /*#__PURE__*/React.createElement("div", {
324
324
  className: "c-combo-box"
325
325
  }, type === "multiple" ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_StyledStyledInputWrapper, {
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RemoveScroll","classNames","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","StyledInfoIcon","StyledInfoSmallIcon","Portal","ConditionalWrapper","useIsFirstRender","useOnClickOutside","useForkRef","Autocomplete","isOptionGroup","Avatar","Checkbox","Chip","IconButton","InputAdornment","StyledInput","StyledInputWrapper","SpinnerLoader","MultiAvatar","Popper","RadioButton","OptionContent","Tooltip","Trigger","Typography","sizeMap","small","regular","big","biggest","ComboBox","_ref","_comboBoxRef$current2","_comboBoxRef$current3","options","selected","loading","loadingText","onChange","onInputChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","onDeselect","defaultValue","open","defaultOpen","onOpen","triggerMode","noResultText","emptyValue","disableVirtualization","hideClearButton","errorMessage","prop","selectedName","value","map","v","find","q","id","name","setValue","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","setOpen","isFirstRender","_comboBoxRef$current","current","contains","handleOnKeyDown","key","stopPropagation","_childNode$current","_childNode$current2","focus","blur","emptyAction","handleChange","selectedValue","handleOpen","handleRenderOption","option","props","createElement","imageUrl","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","startAdornment","_StyledAvatar","_extends","url","$_css","$_css2","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","className","label","backgroundColor","chipColor","autoSize","length","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","_StyledTypography","variant","optionItem","child","avatarSize","showXIcon","hasSelected","showMenu","hasOptions","valueExists","toString","isValueInOptions","some","_StyledStyledInputWrapper","$disabled","$size","$invalid","ref","$mode","onClick","_elementRef$current","click","$_css3","$_css4","_StyledStyledChipWrapper","$autoSize","$open","$_css5","onBlur","onFocus","onKeyDown","$loading","style","display","flex","alignSelf","width","_StyledTrigger","onMouseDown","title","wrapperClick","mode","wrapRef","endAdornment","disablePointerEvents","condition","wrap","children","anchorEl","placement","zIndex","clientWidth","strategy","noIsolation","allowPinchZoom","$width","$hide","inputEl","displayName","_styled","withConfig","componentId","p"],"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 { RemoveScroll } from \"react-remove-scroll\";\n\nimport classNames from \"classnames\";\nimport tw from \"twin.macro\";\n\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n StyledInfoIcon,\n StyledInfoSmallIcon,\n} from \"./Styles\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { IconButton } from \"../IconButton\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { InputMode, InputSize } from \"../Input/types\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { MultiAvatar } from \"../MultiAvatar\";\nimport { Popper } from \"../Popper\";\nimport { RadioButton } from \"../RadioButton\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\n\nconst sizeMap = {\n small: 18,\n regular: 24,\n big: 30,\n biggest: 40,\n};\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 /** onInputChange callback */\n onInputChange?: (text: string) => 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 closes */\n onClose?: () => void;\n /** onOpen (f) will be called when Popper opens */\n onOpen?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n onDeselect?: () => void;\n /** Open state */\n open?: boolean;\n /** Trigger mode */\n triggerMode?: InputMode;\n /** Hide clear button */\n hideClearButton?: boolean;\n /** Error message to display */\n errorMessage?: string;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n onInputChange,\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 onDeselect,\n defaultValue,\n open: defaultOpen = false,\n onOpen,\n triggerMode,\n noResultText,\n emptyValue,\n disableVirtualization,\n hideClearButton = false,\n errorMessage,\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(\n (e) => {\n setValue(e.target.value);\n onInputChange?.(e.target.value);\n },\n [onInputChange]\n );\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(defaultOpen);\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 onOpen?.();\n }\n },\n [focused, onOpen, 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 !== defaultOpen) setOpen(defaultOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultOpen]);\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 handleOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n onOpen?.();\n }\n }, [disabled, onOpen]);\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 (typeof onDeselect === \"function\") {\n onDeselect();\n } else if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n onClear?.();\n setOpen(false);\n },\n [type, onChange, onClear, onDeselect]\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 startAdornment = 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 startAdornment={startAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\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) &&\n type === \"multiple\" &&\n selected.length > 0 &&\n !hideClearButton;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n const showMenu = useMemo(() => {\n const hasOptions = options?.length > 0;\n\n const valueExists = (option: IOptionItemProps) =>\n option.id.toString().includes(value) || option.name.includes(value);\n\n const isValueInOptions = options?.some((option) =>\n isOptionGroup(option)\n ? option.options.some(valueExists)\n : valueExists(option)\n );\n\n return (\n (hasOptions && (!!defaultValue || !value)) ||\n (value && (isValueInOptions || emptyValue || noResultText))\n );\n }, [defaultValue, emptyValue, noResultText, options, value]);\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 $mode={triggerMode}\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 `}\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 css={`\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? sizeMap[size] * 3 + 8 + \"px\"\n : undefined};\n `}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={handleOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n $mode={triggerMode}\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 {invalid && errorMessage && (\n <Tooltip title={errorMessage}>\n {size === \"regular\" ? (\n <StyledInfoSmallIcon />\n ) : (\n <StyledInfoIcon />\n )}\n </Tooltip>\n )}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={handleOpen}\n onFocus={() => {\n setFocused(!focused);\n handleOpen();\n }}\n onClick={handleOpen}\n mode={triggerMode}\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 && <SpinnerLoader />}\n {!loading && selected && !hideClearButton ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n {invalid && errorMessage && (\n <Tooltip title={errorMessage}>\n {size === \"regular\" ? (\n <StyledInfoSmallIcon />\n ) : (\n <StyledInfoIcon />\n )}\n </Tooltip>\n )}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </InputAdornment>\n ) : null\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\n className=\"c-combo-box--list\"\n $width={comboBoxRef.current?.clientWidth}\n $hide={!showMenu}\n >\n <Autocomplete\n {...prop}\n emptyValue={emptyValue}\n noResultText={noResultText}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n defaultValue={defaultValue}\n handleEmptyAction={emptyAction}\n disableVirtualization={disableVirtualization}\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","RemoveScroll","classNames","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","StyledInfoIcon","StyledInfoSmallIcon","Portal","ConditionalWrapper","useIsFirstRender","useOnClickOutside","useForkRef","Autocomplete","isOptionGroup","Avatar","Checkbox","Chip","IconButton","InputAdornment","StyledInput","StyledInputWrapper","SpinnerLoader","MultiAvatar","Popper","RadioButton","OptionContent","Tooltip","Trigger","Typography","sizeMap","small","regular","big","biggest","ComboBox","_ref","_comboBoxRef$current2","_comboBoxRef$current3","options","selected","loading","loadingText","onChange","onInputChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","onDeselect","defaultValue","open","defaultOpen","onOpen","triggerMode","noResultText","emptyValue","disableVirtualization","hideClearButton","errorMessage","prop","selectedName","value","map","v","find","q","id","name","setValue","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","setOpen","isFirstRender","_comboBoxRef$current","current","contains","handleOnKeyDown","key","stopPropagation","_childNode$current","_childNode$current2","focus","blur","emptyAction","handleChange","selectedValue","handleOpen","handleRenderOption","option","props","createElement","imageUrl","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","startAdornment","_StyledAvatar","_extends","url","$_css","$_css2","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","className","label","backgroundColor","chipColor","autoSize","length","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","_StyledTypography","variant","optionItem","child","avatarSize","showXIcon","hasSelected","showMenu","hasOptions","valueExists","toString","isValueInOptions","some","_StyledStyledInputWrapper","$disabled","$size","$invalid","ref","$mode","onClick","_elementRef$current","click","$_css3","$_css4","_StyledStyledChipWrapper","$autoSize","$open","$_css5","onBlur","onFocus","onKeyDown","$loading","style","display","flex","alignSelf","width","_StyledTrigger","onMouseDown","title","wrapperClick","mode","wrapRef","endAdornment","disablePointerEvents","condition","wrap","children","anchorEl","placement","zIndex","clientWidth","strategy","noIsolation","allowPinchZoom","$width","$hide","inputEl","displayName","_styled","withConfig","componentId","p"],"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 { RemoveScroll } from \"react-remove-scroll\";\n\nimport classNames from \"classnames\";\nimport tw from \"twin.macro\";\n\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n StyledInfoIcon,\n StyledInfoSmallIcon,\n} from \"./Styles\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { IconButton } from \"../IconButton\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { InputMode, InputSize } from \"../Input/types\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { MultiAvatar } from \"../MultiAvatar\";\nimport { Popper } from \"../Popper\";\nimport { RadioButton } from \"../RadioButton\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\n\nconst sizeMap = {\n small: 18,\n regular: 24,\n big: 30,\n biggest: 40,\n};\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 /** onInputChange callback */\n onInputChange?: (text: string) => 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 closes */\n onClose?: () => void;\n /** onOpen (f) will be called when Popper opens */\n onOpen?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n onDeselect?: () => void;\n /** Open state */\n open?: boolean;\n /** Trigger mode */\n triggerMode?: InputMode;\n /** Hide clear button */\n hideClearButton?: boolean;\n /** Error message to display */\n errorMessage?: string;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n onInputChange,\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 onDeselect,\n defaultValue,\n open: defaultOpen = false,\n onOpen,\n triggerMode,\n noResultText,\n emptyValue,\n disableVirtualization,\n hideClearButton = false,\n errorMessage,\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(\n (e) => {\n setValue(e.target.value);\n onInputChange?.(e.target.value);\n },\n [onInputChange]\n );\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(defaultOpen);\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 onOpen?.();\n }\n },\n [focused, onOpen, 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 !== defaultOpen) setOpen(defaultOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultOpen]);\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 handleOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n onOpen?.();\n }\n }, [disabled, onOpen]);\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 (typeof onDeselect === \"function\") {\n onDeselect();\n } else if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n onClear?.();\n setOpen(false);\n },\n [type, onChange, onClear, onDeselect]\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 startAdornment = 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 startAdornment={startAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\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) &&\n type === \"multiple\" &&\n selected.length > 0 &&\n !hideClearButton;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n const showMenu = useMemo(() => {\n const hasOptions = options?.length > 0;\n\n const valueExists = (option: IOptionItemProps) =>\n (option.id.toString().includes(value) || option.name.includes(value)) &&\n !option?.hidden;\n\n const isValueInOptions = options?.some((option) =>\n isOptionGroup(option)\n ? option.options.some(valueExists)\n : valueExists(option)\n );\n return (\n (hasOptions && (!!defaultValue || !value)) ||\n (value &&\n (isValueInOptions ||\n (emptyValue && !!handleEmptyAction) ||\n noResultText))\n );\n }, [\n defaultValue,\n emptyValue,\n handleEmptyAction,\n noResultText,\n options,\n value,\n ]);\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 $mode={triggerMode}\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 `}\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 css={`\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? sizeMap[size] * 3 + 8 + \"px\"\n : undefined};\n `}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={handleOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n $mode={triggerMode}\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 {invalid && errorMessage && (\n <Tooltip title={errorMessage}>\n {size === \"regular\" ? (\n <StyledInfoSmallIcon />\n ) : (\n <StyledInfoIcon />\n )}\n </Tooltip>\n )}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={handleOpen}\n onFocus={() => {\n setFocused(!focused);\n handleOpen();\n }}\n onClick={handleOpen}\n mode={triggerMode}\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 && <SpinnerLoader />}\n {!loading && selected && !hideClearButton ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n {invalid && errorMessage && (\n <Tooltip title={errorMessage}>\n {size === \"regular\" ? (\n <StyledInfoSmallIcon />\n ) : (\n <StyledInfoIcon />\n )}\n </Tooltip>\n )}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </InputAdornment>\n ) : null\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\n className=\"c-combo-box--list\"\n $width={comboBoxRef.current?.clientWidth}\n $hide={!showMenu}\n >\n <Autocomplete\n {...prop}\n emptyValue={emptyValue}\n noResultText={noResultText}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n defaultValue={defaultValue}\n handleEmptyAction={emptyAction}\n disableVirtualization={disableVirtualization}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":";;AAAA,OAAOA,KAAK,IAEVC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,OAAO,EACPC,QAAQ,QACH,OAAO;AACd,SAASC,YAAY,QAAQ,qBAAqB;AAElD,OAAOC,UAAU,MAAM,YAAY;AAGnC,SACEC,4BAA4B,EAC5BC,sCAAsC,EACtCC,mBAAmB,EACnBC,kBAAkB,EAClBC,iBAAiB,EACjBC,cAAc,EACdC,mBAAmB,QACd,UAAU;AACjB,SAASC,MAAM,QAAQ,eAAe;AACtC,SAASC,kBAAkB,QAAQ,iDAAiD;AACpF,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,OAAOC,UAAU,MAAM,wBAAwB;AAC/C,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAEEC,aAAa,QACR,8BAA8B;AACrC,SAASC,MAAM,QAAqB,WAAW;AAC/C,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,iBAAiB;AAEjE,SAASC,aAAa,QAAQ,kCAAkC;AAChE,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,UAAU,QAAQ,0BAA0B;AAErD,MAAMC,OAAO,GAAG;EACdC,KAAK,EAAE,EAAE;EACTC,OAAO,EAAE,EAAE;EACXC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE;AACX,CAAC;AA2DD,OAAO,MAAMC,QAA4B,GAAGC,IAAA,IAkCtC;EAAA,IAAAC,qBAAA,EAAAC,qBAAA;EAAA,IAlCuC;IAC3CC,OAAO,GAAG,EAAE;IACZC,QAAQ;IACRC,OAAO,GAAG,KAAK;IACfC,WAAW;IACXC,QAAQ;IACRC,aAAa;IACbC,WAAW;IACXC,iBAAiB;IACjBC,QAAQ,GAAG,KAAK;IAChBC,IAAI,GAAG,SAAS;IAChBC,OAAO,GAAG,KAAK;IACfC,IAAI,GAAG,QAAQ;IACfC,UAAU;IACVC,cAAc,GAAGF,IAAI,KAAK,QAAQ;IAClCG,YAAY;IACZC,UAAU,GAAG,CAAC;IACdC,gBAAgB;IAChBC,QAAQ,GAAG,KAAK;IAChBC,qBAAqB;IACrBC,aAAa;IACbC,OAAO;IACPC,OAAO;IACPC,UAAU;IACVC,YAAY;IACZC,IAAI,EAAEC,WAAW,GAAG,KAAK;IACzBC,MAAM;IACNC,WAAW;IACXC,YAAY;IACZC,UAAU;IACVC,qBAAqB;IACrBC,eAAe,GAAG,KAAK;IACvBC,YAAY;IACZ,GAAGC;EACL,CAAC,GAAApC,IAAA;EACC,MAAMqC,YAAY,GAAG5E,OAAO,CAAC,MAAM;IACjC,IAAI6E,KAAK,GAAG,EAAE;IACd,IAAI,CAAClC,QAAQ,EAAE;MACb,OAAOkC,KAAK;IACd;IACAnC,OAAO,CAACoC,GAAG,CAAEC,CAAC,IAAK;MACjB,IAAKA,CAAC,YAADA,CAAC,CAAwBrC,OAAO,EAAE;QACrC,OAAQqC,CAAC,CAAuBrC,OAAO,CAACsC,IAAI,CAAEC,CAAC,IAAK;UAClD,IAAIA,CAAC,CAACC,EAAE,KAAKvC,QAAQ,EAAE;YACrBkC,KAAK,GAAGI,CAAC,CAACE,IAAI;YACd;UACF;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAIJ,CAAC,CAACG,EAAE,KAAKvC,QAAQ,EAAE;UACrBkC,KAAK,GAAGE,CAAC,CAACI,IAAI;UACd;QACF;MACF;IACF,CAAC,CAAC;IACF,OAAON,KAAK;EACd,CAAC,EAAE,CAACnC,OAAO,EAAEC,QAAQ,CAAC,CAAC;EACvB,MAAM,CAACkC,KAAK,EAAEO,QAAQ,CAAC,GAAGvF,QAAQ,CAAC+E,YAAY,CAAC;EAChD,MAAM,CAACS,OAAO,EAAEC,UAAU,CAAC,GAAGzF,QAAQ,CAAU,KAAK,CAAC;EACtD,MAAM0F,cAAc,GAAG3F,WAAW,CAC/B4F,CAAC,IAAK;IACLJ,QAAQ,CAACI,CAAC,CAACC,MAAM,CAACZ,KAAK,CAAC;IACxB9B,aAAa,YAAbA,aAAa,CAAGyC,CAAC,CAACC,MAAM,CAACZ,KAAK,CAAC;EACjC,CAAC,EACD,CAAC9B,aAAa,CAChB,CAAC;EACD,MAAM2C,SAAS,GAAG3F,MAAM,CAA0B,CAAC;EACnD,MAAM4F,UAAU,GAAG5F,MAAM,CAA0B,IAAI,CAAC;EACxD,MAAM6F,SAAS,GAAG7E,UAAU,CAAC2E,SAAS,EAAEC,UAAU,CAAC;EACnD,MAAME,UAAU,GAAG9F,MAAM,CAAiB,IAAI,CAAC;EAC/C,MAAM+F,WAAW,GAAG/F,MAAM,CAAiB,IAAI,CAAC;EAChD,MAAMgG,WAAW,GAAGhG,MAAM,CAAwB,IAAI,CAAC;EAEvD,MAAM,CAACmE,IAAI,EAAE8B,OAAO,CAAC,GAAGnG,QAAQ,CAACsE,WAAW,CAAC;EAC7C,MAAM8B,aAAa,GAAGpF,gBAAgB,CAAC,CAAC;EAExCC,iBAAiB,CAAC+E,UAAU,EAAGL,CAAC,IAAK;IAAA,IAAAU,oBAAA;IACnC,IAAIV,CAAC,CAACC,MAAM,KAAAS,oBAAA,GAAIH,WAAW,CAACI,OAAO,aAAnBD,oBAAA,CAAqBE,QAAQ,CAACZ,CAAC,CAACC,MAAc,CAAC,EAAE;MAC/D;IACF;IACAO,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,CAAC;EAEF,MAAMK,eAAe,GAAGzG,WAAW,CAChC4F,CAAC,IAAK;IACL,IAAIA,CAAC,CAACc,GAAG,KAAK,QAAQ,IAAIpC,IAAI,EAAE;MAC9B8B,OAAO,CAAC,KAAK,CAAC;MACdZ,QAAQ,CAACR,YAAY,CAAC;MACtBY,CAAC,CAACe,eAAe,CAAC,CAAC;IACrB;IAEA,IAAIf,CAAC,CAACc,GAAG,KAAK,OAAO,IAAIjD,IAAI,KAAK,UAAU,EAAE;MAC5C+B,QAAQ,CAAC,EAAE,CAAC;IACd;IAEA,IAAII,CAAC,CAACc,GAAG,KAAK,OAAO,IAAI,CAACpC,IAAI,IAAImB,OAAO,EAAE;MACzCW,OAAO,CAAC,IAAI,CAAC;MACb5B,MAAM,YAANA,MAAM,CAAG,CAAC;IACZ;EACF,CAAC,EACD,CAACiB,OAAO,EAAEjB,MAAM,EAAEF,IAAI,EAAEU,YAAY,EAAEvB,IAAI,CAC5C,CAAC;EAEDvD,SAAS,CAAC,MAAM;IAAA,IAAA0G,kBAAA,EAAAC,mBAAA;IACdvC,IAAI,KAAIwB,SAAS,aAAAc,kBAAA,GAATd,SAAS,CAAES,OAAO,qBAAlBK,kBAAA,CAAoBE,KAAK,CAAC,CAAC;IACnC,CAACxC,IAAI,KAAIwB,SAAS,aAAAe,mBAAA,GAATf,SAAS,CAAES,OAAO,qBAAlBM,mBAAA,CAAoBE,IAAI,CAAC,CAAC;EACrC,CAAC,EAAE,CAACjB,SAAS,EAAExB,IAAI,CAAC,CAAC;EAErBpE,SAAS,CAAC,MAAM;IACdsF,QAAQ,CAACR,YAAY,CAAC;EACxB,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB9E,SAAS,CAAC,MAAM;IACd,IAAIoE,IAAI,KAAKC,WAAW,EAAE6B,OAAO,CAAC7B,WAAW,CAAC;IAC9C;EACF,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjBrE,SAAS,CAAC,MAAM;IACd,IAAI,CAACoE,IAAI,IAAI,CAAC+B,aAAa,IAAI,CAACZ,OAAO,EAAE;MACvC,IAAI,OAAOvB,OAAO,KAAK,UAAU,EAAE;QACjCA,OAAO,CAAC,CAAC;MACX;IACF;EACF,CAAC,EAAE,CAACuB,OAAO,EAAEY,aAAa,EAAEnC,OAAO,EAAEI,IAAI,CAAC,CAAC;EAE3C,MAAM0C,WAAW,GAAGhH,WAAW,CAC5BmF,CAAC,IAAK;IACL9B,iBAAiB,YAAjBA,iBAAiB,CAAG8B,CAAC,CAAC;IACtBiB,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,EACD,CAAC/C,iBAAiB,CACpB,CAAC;EAED,MAAM4D,YAAY,GAAGjH,WAAW,CAC7BkH,aAAa,IAAK;IACjB,IAAIA,aAAa,KAAKnE,QAAQ,IAAI,OAAOG,QAAQ,KAAK,UAAU,EAAE;MAChEA,QAAQ,CAACgE,aAAa,CAAC;IACzB;IACA,IAAIvD,cAAc,EAAE;MAClByC,OAAO,CAAC,KAAK,CAAC;IAChB;EACF,CAAC,EACD,CAACzC,cAAc,EAAET,QAAQ,EAAEH,QAAQ,CACrC,CAAC;EAED,MAAMoE,UAAU,GAAGnH,WAAW,CAAC,MAAM;IACnC,IAAI,CAACsD,QAAQ,EAAE;MACb8C,OAAO,CAAC,IAAI,CAAC;MACb5B,MAAM,YAANA,MAAM,CAAG,CAAC;IACZ;EACF,CAAC,EAAE,CAAClB,QAAQ,EAAEkB,MAAM,CAAC,CAAC;EAEtB,MAAM4C,kBAAkB,GAAGpH,WAAW,CACpC,CAACqH,MAAM,EAAEC,KAAK,KAAK;IACjB,IAAI,OAAO1D,YAAY,KAAK,UAAU,EAAE;MACtC,OAAOA,YAAY,CAACyD,MAAM,EAAEC,KAAK,CAAC;IACpC;IACA,IAAI7D,IAAI,KAAK,UAAU,EAAE;MACvB,oBACE1D,KAAA,CAAAwH,aAAA,CAAAxH,KAAA,CAAAM,QAAA,qBACEN,KAAA,CAAAwH,aAAA,CAACtF,aAAa;QACZuF,QAAQ,EAAEH,MAAM,CAACI,KAAM;QACvBC,KAAK,EAAEL,MAAM,CAACK,KAAM;QACpBC,SAAS,EAAEN,MAAM,CAACM,SAAU;QAC5BpC,IAAI,EAAE8B,MAAM,CAAC9B;MAAK,CACnB,CAAC,eACFxF,KAAA,CAAAwH,aAAA,CAAChG,QAAQ,EAAK+F,KAAQ,CACtB,CAAC;IAEP;IACA,oBACEvH,KAAA,CAAAwH,aAAA,CAAAxH,KAAA,CAAAM,QAAA,qBACEN,KAAA,CAAAwH,aAAA,CAACtF,aAAa;MACZuF,QAAQ,EAAEH,MAAM,CAACI,KAAM;MACvBC,KAAK,EAAEL,MAAM,CAACK,KAAM;MACpBC,SAAS,EAAEN,MAAM,CAACM,SAAU;MAC5BpC,IAAI,EAAE8B,MAAM,CAAC9B;IAAK,CACnB,CAAC,eACFxF,KAAA,CAAAwH,aAAA,CAACvF,WAAW,EAAKsF,KAAQ,CACzB,CAAC;EAEP,CAAC,EACD,CAAC7D,IAAI,EAAEG,YAAY,CACrB,CAAC;EAED,MAAMgE,cAAc,GAAG5H,WAAW,CAC/B4F,CAAC,IAAK;IACLA,CAAC,CAACe,eAAe,CAAC,CAAC;IACnB,IAAI,OAAOvC,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC,CAAC;IACd,CAAC,MAAM,IAAIX,IAAI,KAAK,UAAU,EAAE;MAC9BP,QAAQ,YAARA,QAAQ,CAAG,EAAE,CAAC;IAChB,CAAC,MAAM;MACLA,QAAQ,YAARA,QAAQ,CAAG,EAAE,CAAC;IAChB;IAEAiB,OAAO,YAAPA,OAAO,CAAG,CAAC;IACXiC,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,EACD,CAAC3C,IAAI,EAAEP,QAAQ,EAAEiB,OAAO,EAAEC,UAAU,CACtC,CAAC;EAED,MAAMyD,eAAe,GAAG7H,WAAW,CAAE4F,CAAC,IAAK;IACzCA,CAAC,CAACkC,cAAc,CAAC,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,UAAU,GAAG/H,WAAW,CAAC,MAAM;IACnCwF,QAAQ,CAACR,YAAY,CAAC;IACtBU,UAAU,CAAC,CAACD,OAAO,CAAC;EACtB,CAAC,EAAE,CAACA,OAAO,EAAET,YAAY,CAAC,CAAC;EAE3B,MAAMgD,mBAAmB,GAAGhI,WAAW,CACrC,CAACqH,MAAM,EAAEY,KAAK,KAAK;IACjB,IAAI,OAAOvE,UAAU,KAAK,UAAU,EAAE;MACpC,OAAOA,UAAU,CAAC2D,MAAM,EAAEY,KAAK,CAAC;IAClC;IACA,MAAMC,WAAiC,GAAG;MACxC3E,IAAI,EAAE;IACR,CAAC;IACD,QAAQA,IAAI;MACV,KAAK,KAAK;QACR2E,WAAW,CAAC3E,IAAI,GAAG,EAAE;QACrB;MACF,KAAK,OAAO;QACV2E,WAAW,CAAC3E,IAAI,GAAG,EAAE;QACrB;IACJ;IACA,MAAM4E,cAAc,GAAGd,MAAM,CAACI,KAAK,gBACjC1H,KAAA,CAAAwH,aAAA,CAAAa,aAAA,EAAAC,QAAA;MAKEC,GAAG,EAAEjB,MAAM,CAACI;IAAM,GACdS,WAAW;MAAAK,KAAA,EAJT;QAAA;QAAA;MAAU,CAAC;MAAAC,MAAA,EACX;QAAA;MAAU;IAAC,EAIlB,CAAC,GACAC,SAAS;IAEb,MAAMvE,OAAO,GAAI0B,CAAC,IAAK;MACrBA,CAAC,CAACkC,cAAc,CAAC,CAAC;MAClBlC,CAAC,CAACe,eAAe,CAAC,CAAC;MACnB,IAAI+B,KAAK,CAACC,OAAO,CAAC5F,QAAQ,CAAC,IAAIA,QAAQ,CAAC6F,QAAQ,CAACvB,MAAM,CAAC/B,EAAE,CAAC,EAAE;QAC3D,IAAI,OAAOpC,QAAQ,KAAK,UAAU,EAAE;UAClC,MAAM2F,WAAW,GAAG9F,QAAQ,CAAC+F,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAK1B,MAAM,CAAC/B,EAAE,CAAC;UACjEpC,QAAQ,CAAC2F,WAAW,CAAC;QACvB;MACF;IACF,CAAC;IAED,IAAIG,WAAW,GAAG,IAAI;IACtB,IAAI1F,QAAQ,EAAE;MACZ0F,WAAW,GAAG,KAAK;IACrB;IACA,IAAI3B,MAAM,CAACK,KAAK,EAAE;MAChBsB,WAAW,GAAG,KAAK;IACrB;IAEA,oBACEjJ,KAAA,CAAAwH,aAAA,CAAC/F,IAAI;MACHyH,SAAS,EAAC,kBAAkB;MAC5Bd,cAAc,EAAEA,cAAe;MAC/Be,KAAK,EAAE7B,MAAM,CAAC9B,IAAK;MACnBmB,GAAG,EAAEuB,KAAM;MACXkB,eAAe,EAAE9B,MAAM,CAACK,KAAM;MAC9BA,KAAK,EAAEL,MAAM,CAAC+B,SAAU;MACxBlF,OAAO,EAAE8E,WAAW,GAAG9E,OAAO,GAAGuE,SAAU;MAC3ClF,IAAI,EAAEA;IAAK,CACZ,CAAC;EAEN,CAAC,EACD,CAACD,QAAQ,EAAEJ,QAAQ,EAAEQ,UAAU,EAAEX,QAAQ,EAAEQ,IAAI,CACjD,CAAC;EAED,MAAM8F,QAAQ,GAAGjJ,OAAO,CAAC,MAAM;IAC7B,IACEqD,IAAI,KAAK,UAAU,IACnBa,IAAI,IACJoE,KAAK,CAACC,OAAO,CAAC5F,QAAQ,CAAC,IACvBA,QAAQ,CAACuG,MAAM,GAAG,CAAC,EACnB;MACA,OAAO,MAAM;IACf;IACA,OAAO/F,IAAI;EACb,CAAC,EAAE,CAACe,IAAI,EAAEvB,QAAQ,EAAEQ,IAAI,EAAEE,IAAI,CAAC,CAAC;EAEhC,MAAM0E,cAAc,GAAG/H,OAAO,CAAC,MAAM;IACnC,IAAIqD,IAAI,KAAK,UAAU,IAAIiF,KAAK,CAACC,OAAO,CAAC5F,QAAQ,CAAC,IAAIA,QAAQ,CAACuG,MAAM,GAAG,CAAC,EAAE;MACzE,MAAMC,QAAuB,GAAG,EAAE;MAClC,IAAIC,KAAK,GAAG,CAAC;MACb1G,OAAO,CAAC2G,OAAO,CAAC,CAACpC,MAAM,EAAEY,KAAK,KAAK;QACjC,MAAMyB,SAAS,GAAGrI,aAAa,CAACgG,MAAM,CAAC;QACvC,IAAItE,QAAQ,CAAC6F,QAAQ,CAACvB,MAAM,CAAC/B,EAAE,CAAC,IAAI,CAACoE,SAAS,EAAE;UAC9CF,KAAK,GAAGA,KAAK,GAAG,CAAC;UACjBD,QAAQ,CAACI,IAAI,CAAC3B,mBAAmB,CAACX,MAAM,EAAEY,KAAK,CAAC,CAAC;QACnD,CAAC,MAAM,IAAIyB,SAAS,EAAE;UACpB,MAAME,cAAc,GAAGvC,MAAM,CAACvE,OAAO,CAACgG,MAAM,CAAEe,CAAC,IAC7C9G,QAAQ,CAAC6F,QAAQ,CAACiB,CAAC,CAACvE,EAAE,CACxB,CAAC;UACDkE,KAAK,GAAGA,KAAK,GAAGI,cAAc,CAACN,MAAM;UACrC,IAAIM,cAAc,CAACN,MAAM,GAAG,CAAC,EAAE;YAC7BM,cAAc,CAACH,OAAO,CAAC,CAACI,CAAC,EAAEC,MAAM,KAAK;cACpCP,QAAQ,CAACI,IAAI,CAAC3B,mBAAmB,CAAC6B,CAAC,EAAK5B,KAAK,SAAI6B,MAAQ,CAAC,CAAC;YAC7D,CAAC,CAAC;UACJ;QACF;MACF,CAAC,CAAC;MACF,IAAIC,MAAM,GAAG,CAAC;MACd,IAAI,CAACzF,IAAI,IAAIT,UAAU,GAAG,CAAC,IAAI0F,QAAQ,CAACD,MAAM,GAAGzF,UAAU,EAAE;QAC3DkG,MAAM,GAAGR,QAAQ,CAACS,MAAM,CACtBnG,UAAU,EACV0F,QAAQ,CAACD,MAAM,GAAGzF,UACpB,CAAC,CAACyF,MAAM;MACV;MAEA,oBACEvJ,KAAA,CAAAwH,aAAA,CAAClH,QAAQ,QACNkJ,QAAQ,EACRQ,MAAM,GAAG,CAAC,iBACThK,KAAA,CAAAwH,aAAA,CAAA0C,iBAAA;QACEC,OAAO,EACL3G,IAAI,KAAK,OAAO,GACZ,WAAW,GACXA,IAAI,KAAK,SAAS,GAClB,QAAQ,GACR;MACL,GAOA,OAAOO,gBAAgB,KAAK,UAAU,GACnCA,gBAAgB,CAACiG,MAAM,CAAC,SACpBA,MACE,CAEN,CAAC;IAEf;IACA,IAAItG,IAAI,KAAK,QAAQ,IAAIV,QAAQ,EAAE;MACjC,IAAIoH,UAAU;MACdrH,OAAO,CAAC2G,OAAO,CAAEpC,MAAM,IAAK;QAC1B,IAAIhG,aAAa,CAACgG,MAAM,CAAC,EAAE;UACzB8C,UAAU,GAAG9C,MAAM,CAACvE,OAAO,CAACsC,IAAI,CAAEgF,KAAK,IAAKA,KAAK,CAAC9E,EAAE,KAAKvC,QAAQ,CAAC;QACpE,CAAC,MAAM,IAAI,CAACoH,UAAU,IAAI9C,MAAM,CAAC/B,EAAE,KAAKvC,QAAQ,EAAE;UAChDoH,UAAU,GAAG9C,MAAM;QACrB;MACF,CAAC,CAAC;MACF,IAAI8C,UAAU,IAAIA,UAAU,CAAC1C,KAAK,EAAE;QAClC,MAAM4C,UAAU,GAAG9G,IAAI,KAAK,KAAK,GAAG,EAAE,GAAGA,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE;QACrE,IAAImF,KAAK,CAACC,OAAO,CAACwB,UAAU,CAAC1C,KAAK,CAAC,EAAE;UACnC,oBAAO1H,KAAA,CAAAwH,aAAA,CAACzF,WAAW;YAACwG,GAAG,EAAE6B,UAAU,CAAC1C,KAAM;YAAClE,IAAI,EAAE8G;UAAW,CAAE,CAAC;QACjE;QACA,oBAAOtK,KAAA,CAAAwH,aAAA,CAACjG,MAAM;UAACgH,GAAG,EAAE6B,UAAU,CAAC1C,KAAM;UAAClE,IAAI,EAAE8G;QAAW,CAAE,CAAC;MAC5D;IACF;IAEA,OAAO5B,SAAS;EAClB,CAAC,EAAE,CACDhF,IAAI,EACJV,QAAQ,EACRD,OAAO,EACPwB,IAAI,EACJT,UAAU,EACVC,gBAAgB,EAChBkE,mBAAmB,EACnBzE,IAAI,CACL,CAAC;EAEF,MAAM+G,SAAS,GACb5B,KAAK,CAACC,OAAO,CAAC5F,QAAQ,CAAC,IACvBU,IAAI,KAAK,UAAU,IACnBV,QAAQ,CAACuG,MAAM,GAAG,CAAC,IACnB,CAACzE,eAAe;EAElB,MAAM0F,WAAW,GACf9G,IAAI,KAAK,UAAU,IAAIiF,KAAK,CAACC,OAAO,CAAC5F,QAAQ,CAAC,IAAIA,QAAQ,CAACuG,MAAM,GAAG,CAAC;EAEvE,MAAMkB,QAAQ,GAAGpK,OAAO,CAAC,MAAM;IAC7B,MAAMqK,UAAU,GAAG,CAAA3H,OAAO,oBAAPA,OAAO,CAAEwG,MAAM,IAAG,CAAC;IAEtC,MAAMoB,WAAW,GAAIrD,MAAwB,IAC3C,CAACA,MAAM,CAAC/B,EAAE,CAACqF,QAAQ,CAAC,CAAC,CAAC/B,QAAQ,CAAC3D,KAAK,CAAC,IAAIoC,MAAM,CAAC9B,IAAI,CAACqD,QAAQ,CAAC3D,KAAK,CAAC,KACpE,EAACoC,MAAM,YAANA,MAAM,CAAE0C,MAAM;IAEjB,MAAMa,gBAAgB,GAAG9H,OAAO,oBAAPA,OAAO,CAAE+H,IAAI,CAAExD,MAAM,IAC5ChG,aAAa,CAACgG,MAAM,CAAC,GACjBA,MAAM,CAACvE,OAAO,CAAC+H,IAAI,CAACH,WAAW,CAAC,GAChCA,WAAW,CAACrD,MAAM,CACxB,CAAC;IACD,OACGoD,UAAU,KAAK,CAAC,CAACpG,YAAY,IAAI,CAACY,KAAK,CAAC,IACxCA,KAAK,KACH2F,gBAAgB,IACdjG,UAAU,IAAI,CAAC,CAACtB,iBAAkB,IACnCqB,YAAY,CAAE;EAEtB,CAAC,EAAE,CACDL,YAAY,EACZM,UAAU,EACVtB,iBAAiB,EACjBqB,YAAY,EACZ5B,OAAO,EACPmC,KAAK,CACN,CAAC;EAEF,oBACElF,KAAA,CAAAwH,aAAA;IAAK0B,SAAS,EAAC;EAAa,GACzBxF,IAAI,KAAK,UAAU,gBAClB1D,KAAA,CAAAwH,aAAA,CAAAxH,KAAA,CAAAM,QAAA,qBACEN,KAAA,CAAAwH,aAAA,CAAAuD,yBAAA;IACEC,SAAS,EAAEzH,QAAS;IACpB0H,KAAK,EAAEzH,IAAK;IACZ0H,QAAQ,EAAEzH,OAAQ;IAClB0H,GAAG,EAAE/E,WAAY;IACjBgF,KAAK,EAAE1G,WAAY;IAUnBwE,SAAS,EAAE1I,UAAU,CACnB,2BAA2B,EAC3ByD,qBACF,CAAE;IACFoH,OAAO,EAAEA,CAAA,KAAM;MAAA,IAAAC,mBAAA;MACb,CAAAA,mBAAA,GAAAtF,UAAU,CAACQ,OAAO,aAAlB8E,mBAAA,CAAoBC,KAAK,CAAC,CAAC;IAC7B,CAAE;IAAAC,MAAA,EAXUlC,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAGZ,SAAS;IAAA+C,MAAA,EACpCnC,QAAQ,KAAK,MAAM,IAAIpF,aAAa,GAC9C,QAAQ,GACRwE;EAAS,gBAUf1I,KAAA,CAAAwH,aAAA,CAAAkE,wBAAA;IACEC,SAAS,EAAErC,QAAS;IACpBsC,KAAK,EAAErH,IAAK;IACZ4G,GAAG,EAAEhF,WAAY;IAAA0F,MAAA,EAEDvC,QAAQ,KAAK,MAAM,IAAIpF,aAAa,GAC9C5B,OAAO,CAACkB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAC5BkF;EAAS,GAGdN,cAAc,eACfpI,KAAA,CAAAwH,aAAA,CAAC5F,WAAW;IACVsH,SAAS,EAAC,mBAAmB;IAC7B4C,MAAM,EAAE9D,UAAW;IACnB+D,OAAO,EAAEA,CAAA,KAAM;MACbpG,UAAU,CAAC,CAACD,OAAO,CAAC;IACtB,CAAE;IACF2F,OAAO,EAAEjE,UAAW;IACpB+D,GAAG,EAAElF,SAAU;IACff,KAAK,EAAEjC,OAAO,IAAIC,WAAW,GAAGA,WAAW,GAAGgC,KAAM;IACpD8G,SAAS,EAAEtF,eAAgB;IAC3BvD,QAAQ,EAAEyC,cAAe;IACzBvC,WAAW,EAAE,CAACmH,WAAW,GAAGnH,WAAW,GAAGqF,SAAU;IACpD0C,KAAK,EAAE1G,WAAY;IACnBnB,QAAQ,EAAEA,QAAS;IACnB0H,KAAK,EAAEzH,IAAK;IACZyI,QAAQ,EAAEhJ,OAAQ;IAClBiJ,KAAK,EAAE;MACLC,OAAO,EAAE,MAAM;MACfC,IAAI,EAAE,CAAC;MACPC,SAAS,EAAE,QAAQ;MACnBC,KAAK,EAAEhD,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG;IACxC;EAAE,CACH,CACgB,CAAC,EACnB,CAAC/F,QAAQ,iBACRvD,KAAA,CAAAwH,aAAA,CAAAxH,KAAA,CAAAM,QAAA,QACG2C,OAAO,gBACNjD,KAAA,CAAAwH,aAAA,CAAC1F,aAAa,MAAE,CAAC,gBAEjB9B,KAAA,CAAAwH,aAAA,CAAAxH,KAAA,CAAAM,QAAA,QACGiK,SAAS,iBACRvK,KAAA,CAAAwH,aAAA,CAAA+E,cAAA;IACEC,WAAW,EAAE1E,eAAgB;IAC7BuD,OAAO,EAAExD,cAAe;IACxB,eAAY;EAAc,gBAM1B7H,KAAA,CAAAwH,aAAA,CAAC/G,4BAA4B,MAAE,CACxB,CACV,EACAgD,OAAO,IAAIsB,YAAY,iBACtB/E,KAAA,CAAAwH,aAAA,CAACrF,OAAO;IAACsK,KAAK,EAAE1H;EAAa,GAC1BvB,IAAI,KAAK,SAAS,gBACjBxD,KAAA,CAAAwH,aAAA,CAACzG,mBAAmB,MAAE,CAAC,gBAEvBf,KAAA,CAAAwH,aAAA,CAAC1G,cAAc,MAAE,CAEZ,CACV,EACA2J,QAAQ,iBACPzK,KAAA,CAAAwH,aAAA,CAAC9G,sCAAsC;IAACkL,KAAK,EAAErH;EAAK,CAAE,CAExD,CAEJ,CAEc,CACpB,CAAC,gBAEHvE,KAAA,CAAAwH,aAAA,CAAC7G,mBAAmB;IAClBuI,SAAS,EAAE1I,UAAU,CAAC,mBAAmB,EAAEyD,qBAAqB,CAAE;IAClE6H,MAAM,EAAE9D,UAAW;IACnB0E,YAAY,EAAEtF,UAAW;IACzB2E,OAAO,EAAEA,CAAA,KAAM;MACbpG,UAAU,CAAC,CAACD,OAAO,CAAC;MACpB0B,UAAU,CAAC,CAAC;IACd,CAAE;IACFiE,OAAO,EAAEjE,UAAW;IACpBuF,IAAI,EAAEjI,WAAY;IAClBkI,OAAO,EAAExG,WAAY;IACrB+E,GAAG,EAAElF,SAAU;IACff,KAAK,EAAEjC,OAAO,IAAIC,WAAW,GAAGA,WAAW,GAAGgC,KAAM;IACpD8G,SAAS,EAAEtF,eAAgB;IAC3BvD,QAAQ,EAAEyC,cAAe;IACzBvC,WAAW,EAAEA,WAAY;IACzBE,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjBwI,QAAQ,EAAEhJ,OAAQ;IAClBmF,cAAc,EAAEA,cAAe;IAC/ByE,YAAY,EACV,CAACtJ,QAAQ,gBACPvD,KAAA,CAAAwH,aAAA,CAAC7F,cAAc;MAACmL,oBAAoB,EAAEvJ;IAAS,GAC5CN,OAAO,iBAAIjD,KAAA,CAAAwH,aAAA,CAAC1F,aAAa,MAAE,CAAC,EAC5B,CAACmB,OAAO,IAAID,QAAQ,IAAI,CAAC8B,eAAe,gBACvC9E,KAAA,CAAAwH,aAAA,CAAC9F,UAAU;MACT8K,WAAW,EAAE1E,eAAgB;MAC7BuD,OAAO,EAAExD,cAAe;MACxBsC,OAAO,EAAC,WAAW;MACnB3G,IAAI,EAAC;IAAO,gBAEZxD,KAAA,CAAAwH,aAAA,CAAC/G,4BAA4B,MAAE,CACrB,CAAC,GACX,IAAI,EACPgD,OAAO,IAAIsB,YAAY,iBACtB/E,KAAA,CAAAwH,aAAA,CAACrF,OAAO;MAACsK,KAAK,EAAE1H;IAAa,GAC1BvB,IAAI,KAAK,SAAS,gBACjBxD,KAAA,CAAAwH,aAAA,CAACzG,mBAAmB,MAAE,CAAC,gBAEvBf,KAAA,CAAAwH,aAAA,CAAC1G,cAAc,MAAE,CAEZ,CACV,EACA2J,QAAQ,iBACPzK,KAAA,CAAAwH,aAAA,CAAC9G,sCAAsC;MAACkL,KAAK,EAAErH;IAAK,CAAE,CAE1C,CAAC,GACf;EACL,CACF,CACF,EACA,CAAChB,QAAQ,gBACRvD,KAAA,CAAAwH,aAAA,CAACvG,kBAAkB;IACjB8L,SAAS,EAAE/I,QAAS;IACpBgJ,IAAI,EAAGC,QAAQ,iBAAKjN,KAAA,CAAAwH,aAAA,CAACxG,MAAM,QAAEiM,QAAiB;EAAE,gBAEhDjN,KAAA,CAAAwH,aAAA,CAACxF,MAAM;IACLkL,QAAQ,EAAE9G,WAAW,CAACI,OAAQ;IAC9BjC,IAAI,EAAEA,IAAK;IACX4I,SAAS,EAAC,QAAQ;IAClBjB,KAAK,EAAE;MACLkB,MAAM,EAAE,EAAE;MACVd,KAAK,GAAAzJ,qBAAA,GAAEuD,WAAW,CAACI,OAAO,qBAAnB3D,qBAAA,CAAqBwK;IAC9B,CAAE;IACFlC,GAAG,EAAEjF,UAAW;IAChBoH,QAAQ,EAAC;EAAO,gBAEhBtN,KAAA,CAAAwH,aAAA,CAACjH,YAAY;IAACgN,WAAW;IAACC,cAAc;EAAA,gBACtCxN,KAAA,CAAAwH,aAAA,CAAC5G,kBAAkB;IACjBsI,SAAS,EAAC,mBAAmB;IAC7BuE,MAAM,GAAA3K,qBAAA,GAAEsD,WAAW,CAACI,OAAO,qBAAnB1D,qBAAA,CAAqBuK,WAAY;IACzCK,KAAK,EAAE,CAACjD;EAAS,gBAEjBzK,KAAA,CAAAwH,aAAA,CAACnG,YAAY,EAAAiH,QAAA,KACPtD,IAAI;IACRJ,UAAU,EAAEA,UAAW;IACvBD,YAAY,EAAEA,YAAa;IAC3BgJ,OAAO,EAAE5H,SAAU;IACnB/C,QAAQ,EAAEA,QAAS;IACnBkE,YAAY,EAAEA,YAAa;IAC3BrD,YAAY,EAAEwD,kBAAmB;IACjCtE,OAAO,EAAEA,OAAQ;IACjBW,IAAI,EAAEA,IAAK;IACXY,YAAY,EAAEA,YAAa;IAC3BhB,iBAAiB,EAAE2D,WAAY;IAC/BpC,qBAAqB,EAAEA;EAAsB,EAC9C,CACiB,CACR,CACR,CACU,CAAC,GACnB,IACD,CAAC;AAEV,CAAC;AAEDlC,QAAQ,CAACiL,WAAW,GAAG,UAAU;AAAC,IAAAvF,aAAA,GAAAwF,OAAA,CAAAtM,MAAA,EAAAuM,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,kBAAAC,CAAA,IAAAA,CAAA,CAAAxF,KAAA,EAAAwF,CAAA,IAAAA,CAAA,CAAAvF,MAAA;AAAA,IAAAyB,iBAAA,GAAA2D,OAAA,CAAAxL,UAAA,EAAAyL,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA;AAAA,IAAAhD,yBAAA,GAAA8C,OAAA,CAAAhM,kBAAA,EAAAiM,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,uFAAAC,CAAA,IAAAA,CAAA,CAAAxC,MAAA,EAAAwC,CAAA,IAAAA,CAAA,CAAAvC,MAAA;AAAA,IAAAC,wBAAA,GAAAmC,OAAA,CAAAhN,iBAAA,EAAAiN,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,yBAAAC,CAAA,IAAAA,CAAA,CAAAnC,MAAA;AAAA,IAAAU,cAAA,GAAAsB,OAAA,CAAAzL,OAAA,EAAA0L,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA"}
@@ -16,6 +16,8 @@ export interface IOptionItemProps {
16
16
  chipColor?: string;
17
17
  /** Value of mixed */
18
18
  mixed?: boolean;
19
+ /** Hide option */
20
+ hidden?: boolean;
19
21
  }
20
22
  interface IAdditionalOptionItemProps {
21
23
  /** Value of option */
@@ -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;AAMf,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,0BAA0B;IAClC,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,kGAkClB,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;AAMf,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,0BAA0B;IAClC,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,kGAkClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","names":["React","forwardRef","useCallback","classnames","StyledOption","Option","_ref","ref","id","name","tooltip","hover","className","renderOption","onMouseEnter","onClick","handleOnMouseEnter","createElement","title","onTouchStart","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\n\nimport classnames from \"classnames\";\n\nimport { StyledOption } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: 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 /** Value of mixed */\n mixed?: boolean;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: 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 tooltip = \"\",\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={tooltip ? tooltip : name}\n onMouseEnter={handleOnMouseEnter}\n onTouchStart={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;AAEd,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,YAAY,QAAQ,UAAU;AAwCvC,OAAO,MAAMC,MAAM,gBAAGJ,UAAU,CAC9B,CAAAK,IAAA,EAWEC,GAAuB,KACpB;EAAA,IAXH;IACEC,EAAE;IACFC,IAAI;IACJC,OAAO,GAAG,EAAE;IACZC,KAAK;IACLC,SAAS;IACTC,YAAY;IACZC,YAAY;IACZC,OAAO,GAAGA,CAAA,KAAM;EACU,CAAC,GAAAT,IAAA;EAG7B,MAAMU,kBAAkB,GAAGd,WAAW,CAAC,MAAM;IAC3C,IAAIY,YAAY,EAAE;MAChBA,YAAY,CAACN,EAAE,CAAC;IAClB;EACF,CAAC,EAAE,CAACM,YAAY,EAAEN,EAAE,CAAC,CAAC;EAEtB,oBACER,KAAA,CAAAiB,aAAA,CAACb,YAAY;IACXG,GAAG,EAAEI,KAAK,GAAGJ,GAAG,GAAG,IAAK;IACxBW,KAAK,EAAER,OAAO,GAAGA,OAAO,GAAGD,IAAK;IAChCK,YAAY,EAAEE,kBAAmB;IACjCG,YAAY,EAAEH,kBAAmB;IACjCJ,SAAS,EAAET,UAAU,CAAC,UAAU,EAAES,SAAS,CAAE;IAC7CD,KAAK,EAAEA,KAAM;IACbI,OAAO,EAAEA;EAAQ,GAEhBF,YAAY,GAAGA,YAAY,GAAGJ,IACnB,CAAC;AAEnB,CACF,CAAC;AAEDJ,MAAM,CAACe,WAAW,GAAG,QAAQ"}
1
+ {"version":3,"file":"Option.js","names":["React","forwardRef","useCallback","classnames","StyledOption","Option","_ref","ref","id","name","tooltip","hover","className","renderOption","onMouseEnter","onClick","handleOnMouseEnter","createElement","title","onTouchStart","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\n\nimport classnames from \"classnames\";\n\nimport { StyledOption } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: 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 /** Value of mixed */\n mixed?: boolean;\n /** Hide option */\n hidden?: boolean;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: 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 tooltip = \"\",\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={tooltip ? tooltip : name}\n onMouseEnter={handleOnMouseEnter}\n onTouchStart={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;AAEd,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,YAAY,QAAQ,UAAU;AA0CvC,OAAO,MAAMC,MAAM,gBAAGJ,UAAU,CAC9B,CAAAK,IAAA,EAWEC,GAAuB,KACpB;EAAA,IAXH;IACEC,EAAE;IACFC,IAAI;IACJC,OAAO,GAAG,EAAE;IACZC,KAAK;IACLC,SAAS;IACTC,YAAY;IACZC,YAAY;IACZC,OAAO,GAAGA,CAAA,KAAM;EACU,CAAC,GAAAT,IAAA;EAG7B,MAAMU,kBAAkB,GAAGd,WAAW,CAAC,MAAM;IAC3C,IAAIY,YAAY,EAAE;MAChBA,YAAY,CAACN,EAAE,CAAC;IAClB;EACF,CAAC,EAAE,CAACM,YAAY,EAAEN,EAAE,CAAC,CAAC;EAEtB,oBACER,KAAA,CAAAiB,aAAA,CAACb,YAAY;IACXG,GAAG,EAAEI,KAAK,GAAGJ,GAAG,GAAG,IAAK;IACxBW,KAAK,EAAER,OAAO,GAAGA,OAAO,GAAGD,IAAK;IAChCK,YAAY,EAAEE,kBAAmB;IACjCG,YAAY,EAAEH,kBAAmB;IACjCJ,SAAS,EAAET,UAAU,CAAC,UAAU,EAAES,SAAS,CAAE;IAC7CD,KAAK,EAAEA,KAAM;IACbI,OAAO,EAAEA;EAAQ,GAEhBF,YAAY,GAAGA,YAAY,GAAGJ,IACnB,CAAC;AAEnB,CACF,CAAC;AAEDJ,MAAM,CAACe,WAAW,GAAG,QAAQ"}
package/dist/index.js CHANGED
@@ -17341,6 +17341,9 @@
17341
17341
  var trimmedFilter = filter.trim();
17342
17342
  var isGrouped = options[0] && isOptionGroup(options[0]);
17343
17343
  var matchesFilter = function matchesFilter(option) {
17344
+ if (option.hidden) {
17345
+ return false;
17346
+ }
17344
17347
  var nameMatch = option.name.toLowerCase().includes(trimmedFilter.toLowerCase());
17345
17348
  if (filterCriteria && trimmedFilter) {
17346
17349
  return nameMatch || filterCriteria(option, trimmedFilter);
@@ -19557,13 +19560,13 @@
19557
19560
  var showMenu = React.useMemo(function () {
19558
19561
  var hasOptions = (options === null || options === void 0 ? void 0 : options.length) > 0;
19559
19562
  var valueExists = function valueExists(option) {
19560
- return option.id.toString().includes(value) || option.name.includes(value);
19563
+ return (option.id.toString().includes(value) || option.name.includes(value)) && !(option !== null && option !== void 0 && option.hidden);
19561
19564
  };
19562
19565
  var isValueInOptions = options === null || options === void 0 ? void 0 : options.some(function (option) {
19563
19566
  return isOptionGroup(option) ? option.options.some(valueExists) : valueExists(option);
19564
19567
  });
19565
- return hasOptions && (!!defaultValue || !value) || value && (isValueInOptions || emptyValue || noResultText);
19566
- }, [defaultValue, emptyValue, noResultText, options, value]);
19568
+ return hasOptions && (!!defaultValue || !value) || value && (isValueInOptions || emptyValue && !!handleEmptyAction || noResultText);
19569
+ }, [defaultValue, emptyValue, handleEmptyAction, noResultText, options, value]);
19567
19570
  return /*#__PURE__*/React__default["default"].createElement("div", {
19568
19571
  className: "c-combo-box"
19569
19572
  }, type === "multiple" ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(_StyledStyledInputWrapper, {