@chayns-components/core 5.0.0-beta.1021 → 5.0.0-beta.1024

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.
@@ -18,7 +18,7 @@ const StyledComboBoxItem = exports.StyledComboBoxItem = _styledComponents.defaul
18
18
  }) => theme.text};
19
19
  display: flex;
20
20
  gap: 10px;
21
- padding: 4px 10px;
21
+ padding: 8px 10px;
22
22
  transition: background-color 0.2s ease-in-out;
23
23
 
24
24
  ${({
@@ -81,10 +81,6 @@ const StyledComboBoxItemContentHeader = exports.StyledComboBoxItemContentHeader
81
81
  $text,
82
82
  $subtext
83
83
  }) => $text && $subtext ? 'bold' : 'normal'};
84
- font-size: ${({
85
- $text,
86
- $subtext
87
- }) => $text && $subtext && '17px'};
88
84
  `;
89
85
  const StyledComboBoxItemContentHeaderWrapper = exports.StyledComboBoxItemContentHeaderWrapper = _styledComponents.default.div`
90
86
  display: flex;
@@ -102,7 +98,7 @@ const StyledComboBoxItemContentHeaderRightElement = exports.StyledComboBoxItemCo
102
98
  display: flex;
103
99
  `;
104
100
  const StyledComboBoxItemContentSubtext = exports.StyledComboBoxItemContentSubtext = _styledComponents.default.div`
105
- font-size: 90%;
101
+ font-size: 85%;
106
102
  margin-top: 2px;
107
103
  `;
108
104
  //# sourceMappingURL=ComboBoxItem.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBoxItem.styles.js","names":["_styledComponents","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","StyledComboBoxItem","exports","styled","div","theme","$isSelected","text","$isDisabled","css","$isTouch","StyledComboBoxItemImage","img","$shouldShowRoundImage","$background","$shouldShowBigImage","StyledComboBoxItemContent","StyledComboBoxItemContentHeader","$text","$subtext","StyledComboBoxItemContentHeaderWrapper","StyledComboBoxItemContentHeaderWrapperText","StyledComboBoxItemContentHeaderRightElement","StyledComboBoxItemContentSubtext"],"sources":["../../../../../src/components/combobox/combobox-item/ComboBoxItem.styles.ts"],"sourcesContent":["import { CSSProperties } from 'react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledComboBoxItemProps = WithTheme<{\n $isDisabled?: boolean;\n $isSelected: boolean;\n $isTouch: boolean;\n}>;\n\nexport const StyledComboBoxItem = styled.div<StyledComboBoxItemProps>`\n align-items: center;\n background-color: ${({ theme, $isSelected }: StyledComboBoxItemProps) =>\n $isSelected && theme['secondary-102']};\n color: ${({ theme }: StyledComboBoxItemProps) => theme.text};\n display: flex;\n gap: 10px;\n padding: 4px 10px;\n transition: background-color 0.2s ease-in-out;\n\n ${({ $isDisabled }) =>\n $isDisabled &&\n css`\n opacity: 0.5;\n pointer-events: none;\n `}\n\n ${({ $isDisabled, $isTouch, theme }: StyledComboBoxItemProps) =>\n !$isDisabled &&\n !$isTouch &&\n css`\n &:hover {\n background-color: ${theme['secondary-101']};\n }\n\n &:focus {\n background-color: ${theme['secondary-101']};\n }\n `}\n`;\n\ntype StyledComboBoxItemImageProps = WithTheme<{\n $background?: CSSProperties['background'];\n $shouldShowBigImage?: boolean;\n $shouldShowRoundImage?: boolean;\n}>;\n\nexport const StyledComboBoxItemImage = styled.img<StyledComboBoxItemImageProps>`\n ${({ $shouldShowRoundImage }) =>\n $shouldShowRoundImage &&\n css`\n border-radius: 50%;\n `}\n\n background: ${({ $background, theme }: StyledComboBoxItemImageProps) =>\n $background || `rgba(${theme['text-rgb'] ?? '0,0,0'}, 0.1)`};\n box-shadow: 0 0 0 1px\n rgba(${({ theme }: StyledComboBoxItemImageProps) => theme['009-rgb']}, 0.15);\n flex: 0 0 auto;\n height: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '40px' : '22px')};\n width: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '40px' : '22px')};\n`;\n\nexport const StyledComboBoxItemContent = styled.div`\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n line-height: normal;\n min-width: 0;\n width: 100%;\n`;\n\ntype StyledComboBoxItemContentHeaderProps = {\n $text?: string;\n $subtext?: string;\n};\nexport const StyledComboBoxItemContentHeader = styled.div<StyledComboBoxItemContentHeaderProps>`\n align-items: center;\n display: flex;\n justify-content: space-between;\n font-weight: ${({ $text, $subtext }) => ($text && $subtext ? 'bold' : 'normal')};\n font-size: ${({ $text, $subtext }) => $text && $subtext && '17px'};\n`;\n\nexport const StyledComboBoxItemContentHeaderWrapper = styled.div`\n display: flex;\n flex: 1 1 auto;\n gap: 4px;\n min-width: 0;\n`;\n\nexport const StyledComboBoxItemContentHeaderWrapperText = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const StyledComboBoxItemContentHeaderRightElement = styled.div`\n align-items: center;\n display: flex;\n`;\n\nexport const StyledComboBoxItemContentSubtext = styled.div`\n font-size: 90%;\n margin-top: 2px;\n`;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ComboBoxItem.styles.js","names":["_styledComponents","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","StyledComboBoxItem","exports","styled","div","theme","$isSelected","text","$isDisabled","css","$isTouch","StyledComboBoxItemImage","img","$shouldShowRoundImage","$background","$shouldShowBigImage","StyledComboBoxItemContent","StyledComboBoxItemContentHeader","$text","$subtext","StyledComboBoxItemContentHeaderWrapper","StyledComboBoxItemContentHeaderWrapperText","StyledComboBoxItemContentHeaderRightElement","StyledComboBoxItemContentSubtext"],"sources":["../../../../../src/components/combobox/combobox-item/ComboBoxItem.styles.ts"],"sourcesContent":["import { CSSProperties } from 'react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledComboBoxItemProps = WithTheme<{\n $isDisabled?: boolean;\n $isSelected: boolean;\n $isTouch: boolean;\n}>;\n\nexport const StyledComboBoxItem = styled.div<StyledComboBoxItemProps>`\n align-items: center;\n background-color: ${({ theme, $isSelected }: StyledComboBoxItemProps) =>\n $isSelected && theme['secondary-102']};\n color: ${({ theme }: StyledComboBoxItemProps) => theme.text};\n display: flex;\n gap: 10px;\n padding: 8px 10px;\n transition: background-color 0.2s ease-in-out;\n\n ${({ $isDisabled }) =>\n $isDisabled &&\n css`\n opacity: 0.5;\n pointer-events: none;\n `}\n\n ${({ $isDisabled, $isTouch, theme }: StyledComboBoxItemProps) =>\n !$isDisabled &&\n !$isTouch &&\n css`\n &:hover {\n background-color: ${theme['secondary-101']};\n }\n\n &:focus {\n background-color: ${theme['secondary-101']};\n }\n `}\n`;\n\ntype StyledComboBoxItemImageProps = WithTheme<{\n $background?: CSSProperties['background'];\n $shouldShowBigImage?: boolean;\n $shouldShowRoundImage?: boolean;\n}>;\n\nexport const StyledComboBoxItemImage = styled.img<StyledComboBoxItemImageProps>`\n ${({ $shouldShowRoundImage }) =>\n $shouldShowRoundImage &&\n css`\n border-radius: 50%;\n `}\n\n background: ${({ $background, theme }: StyledComboBoxItemImageProps) =>\n $background || `rgba(${theme['text-rgb'] ?? '0,0,0'}, 0.1)`};\n box-shadow: 0 0 0 1px\n rgba(${({ theme }: StyledComboBoxItemImageProps) => theme['009-rgb']}, 0.15);\n flex: 0 0 auto;\n height: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '40px' : '22px')};\n width: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '40px' : '22px')};\n`;\n\nexport const StyledComboBoxItemContent = styled.div`\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n line-height: normal;\n min-width: 0;\n width: 100%;\n`;\n\ntype StyledComboBoxItemContentHeaderProps = {\n $text?: string;\n $subtext?: string;\n};\n\nexport const StyledComboBoxItemContentHeader = styled.div<StyledComboBoxItemContentHeaderProps>`\n align-items: center;\n display: flex;\n justify-content: space-between;\n font-weight: ${({ $text, $subtext }) => ($text && $subtext ? 'bold' : 'normal')};\n`;\n\nexport const StyledComboBoxItemContentHeaderWrapper = styled.div`\n display: flex;\n flex: 1 1 auto;\n gap: 4px;\n min-width: 0;\n`;\n\nexport const StyledComboBoxItemContentHeaderWrapperText = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const StyledComboBoxItemContentHeaderRightElement = styled.div`\n align-items: center;\n display: flex;\n`;\n\nexport const StyledComboBoxItemContentSubtext = styled.div`\n font-size: 85%;\n margin-top: 2px;\n`;\n"],"mappings":"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","ignoreList":[]}
@@ -22,6 +22,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
22
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
23
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
24
  const SearchBox = /*#__PURE__*/(0, _react2.forwardRef)(({
25
+ isInvalid = false,
25
26
  placeholder,
26
27
  leftIcons,
27
28
  lists,
@@ -605,6 +606,7 @@ const SearchBox = /*#__PURE__*/(0, _react2.forwardRef)(({
605
606
  }, /*#__PURE__*/_react2.default.createElement("div", {
606
607
  id: "search_box_input"
607
608
  }, /*#__PURE__*/_react2.default.createElement(_Input.default, {
609
+ isInvalid: isInvalid,
608
610
  ref: inputRef,
609
611
  onChange: handleChange,
610
612
  onBlur: handleBlur,
@@ -614,7 +616,7 @@ const SearchBox = /*#__PURE__*/(0, _react2.forwardRef)(({
614
616
  leftElement: leftElement,
615
617
  rightElement: rightElement,
616
618
  value: value
617
- })), portal), [handleBlur, handleChange, handleFocus, leftElement, onKeyDown, placeholder, portal, rightElement, value]);
619
+ })), portal), [handleBlur, handleChange, handleFocus, isInvalid, leftElement, onKeyDown, placeholder, portal, rightElement, value]);
618
620
  });
619
621
  SearchBox.displayName = 'SearchBox';
620
622
  var _default = exports.default = SearchBox;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBox.js","names":["_chaynsApi","require","_react","_react2","_interopRequireWildcard","_reactDom","_styledComponents","_calculate","_searchBox","_Icon","_interopRequireDefault","_Input","_GroupName","_SearchBoxBody","_SearchBoxItem","_SearchBoxItem2","_SearchBox","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SearchBox","forwardRef","placeholder","leftIcons","lists","onChange","onBlur","onSelect","onKeyDown","selectedId","container","shouldHideFilterButtons","shouldShowRoundImage","shouldShowContentOnEmptyInput","shouldAddInputToList","shouldShowToggleIcon","customFilter","ref","matchingListsItems","setMatchingListsItems","useState","selectedImage","setSelectedImage","value","setValue","isAnimating","setIsAnimating","height","setHeight","width","setWidth","focusedIndex","setFocusedIndex","hasMultipleGroups","setHasMultipleGroups","length","filteredChildrenArray","setFilteredChildrenArray","inputToListValue","setInputToListValue","groups","setGroups","portal","setPortal","internalCoordinates","setInternalCoordinates","x","y","newContainer","setNewContainer","boxRef","useRef","contentRef","inputRef","hasFocusRef","isAnimatingRef","theme","useTheme","browser","getDevice","useEffect","current","el","element","closest","Element","getBoundingClientRect","filterButtons","useMemo","items","forEach","groupName","push","id","text","activeList","newLists","list","includes","newMatchingItems","newList","searchList","searchString","undefined","filteredMatchingListItems","map","filter","item","handleOpen","useCallback","bodyHeight","handleClose","handleFilterButtonsGroupSelect","keys","handleOutsideClick","event","contains","target","document","addEventListener","window","removeEventListener","textArray","calculateContentHeight","input","getElementById","getInputWidth","offsetWidth","ResizeObserver","observe","selectedItem","find","imageUrl","createElement","StyledSearchBoxItemImage","src","$shouldShowRoundImage","handleFocus","toLowerCase","handleClick","rightElement","StyledSearchBoxIcon","onClick","icons","color","leftElement","StyledSearchBoxLeftWrapper","handleChange","filteredLists","handleBlur","handleSelect","newItem","replace","content","index","key","name","handleKeyDown","_contentRef$current","_childrenArray$find","preventDefault","children","childrenArray","Array","from","newChildren","child","startsWith","filteredChildren","dataset","isgroupname","newIndex","prevElement","tabIndex","newElement","focus","_element$children$","textContent","attributes","_element$children$2","nodeValue","handleKeyPress","keyCode","useImperativeHandle","clear","createPortal","AnimatePresence","initial","trim","selectedGroups","coordinates","onGroupSelect","StyledSearchBox","onFocus","displayName","_default","exports"],"sources":["../../../../src/components/search-box/SearchBox.tsx"],"sourcesContent":["import { getDevice } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n FocusEvent,\n FocusEventHandler,\n forwardRef,\n KeyboardEventHandler,\n ReactElement,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useTheme } from 'styled-components';\nimport { BrowserName } from '../../types/chayns';\nimport type { IFilterButtonItem } from '../../types/filterButtons';\nimport type { ISearchBoxItem, ISearchBoxItems } from '../../types/searchBox';\nimport { calculateContentHeight } from '../../utils/calculate';\nimport { searchList } from '../../utils/searchBox';\nimport type { ContextMenuCoordinates } from '../context-menu/ContextMenu';\nimport Icon from '../icon/Icon';\nimport Input from '../input/Input';\nimport GroupName from './group-name/GroupName';\nimport SearchBoxBody from './search-box-body/SearchBoxBody';\nimport SearchBoxItem from './search-box-item/SearchBoxItem';\nimport { StyledSearchBoxItemImage } from './search-box-item/SearchBoxItem.styles';\nimport {\n StyledSearchBox,\n StyledSearchBoxIcon,\n StyledSearchBoxLeftWrapper,\n} from './SearchBox.styles';\n\nexport type SearchBoxRef = {\n clear: VoidFunction;\n};\n\nexport type SearchBoxProps = {\n /**\n * The element where the content of the `ComboBox` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * An optional icon that is displayed inside the left side of the input.\n */\n leftIcons?: string[];\n /**\n * List of groups with items that can be searched. It is possible to give only one list; if multiple lists are provided, the 'group name' parameter becomes mandatory.\n */\n lists: ISearchBoxItems[];\n /**\n * The placeholder that should be displayed.\n */\n placeholder?: string;\n /**\n * Function to be executed when the input lost focus.\n */\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when the input is changed.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function that is executed when a letter is pressed\n */\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when an item is selected.\n */\n onSelect?: (item: ISearchBoxItem) => void;\n /**\n * Control the selected item. If you use this prop, make sure to update it when the user selects an item.\n */\n selectedId?: string;\n /**\n * If true, the value in the Input is displayed in the list.\n */\n shouldAddInputToList: boolean;\n /**\n * If true, the filter buttons are hidden.\n */\n shouldHideFilterButtons?: boolean;\n /**\n * Whether the full list of items should be displayed if the input is empty.\n */\n shouldShowContentOnEmptyInput?: boolean;\n /**\n * If true, the images of the items are displayed in a round shape.\n */\n shouldShowRoundImage?: boolean;\n /**\n * Whether the icon to open and close the list should be displayed.\n */\n shouldShowToggleIcon?: boolean;\n /**\n * An optional callback function to filter the elements to be displayed\n */\n customFilter?: (item: ISearchBoxItem) => boolean;\n};\n\nconst SearchBox: FC<SearchBoxProps> = forwardRef<SearchBoxRef, SearchBoxProps>(\n (\n {\n placeholder,\n leftIcons,\n lists,\n onChange,\n onBlur,\n onSelect,\n onKeyDown,\n selectedId,\n container,\n shouldHideFilterButtons = false,\n shouldShowRoundImage,\n shouldShowContentOnEmptyInput = true,\n shouldAddInputToList = true,\n shouldShowToggleIcon = false,\n customFilter,\n },\n ref,\n ) => {\n const [matchingListsItems, setMatchingListsItems] = useState<ISearchBoxItems[]>(lists);\n const [selectedImage, setSelectedImage] = useState<ReactElement>();\n const [value, setValue] = useState('');\n const [isAnimating, setIsAnimating] = useState(false);\n const [height, setHeight] = useState<number>(0);\n const [width, setWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [hasMultipleGroups, setHasMultipleGroups] = useState<boolean>(lists.length > 1);\n const [filteredChildrenArray, setFilteredChildrenArray] = useState<Element[]>();\n const [inputToListValue, setInputToListValue] = useState<string>('');\n const [groups, setGroups] = useState<string[]>(['all']);\n const [portal, setPortal] = useState<ReactPortal>();\n const [internalCoordinates, setInternalCoordinates] = useState<ContextMenuCoordinates>({\n x: 0,\n y: 0,\n });\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n\n const boxRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const hasFocusRef = useRef<boolean>(false);\n const isAnimatingRef = useRef<boolean>(false);\n\n const theme = useTheme();\n\n const { browser } = getDevice();\n\n useEffect(() => {\n if (boxRef.current && !container) {\n const el = boxRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner') || el.closest('body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n if (boxRef.current) {\n const { x, y } = boxRef.current.getBoundingClientRect();\n\n setInternalCoordinates({\n x,\n y,\n });\n }\n }, []);\n\n /**\n * Checks if Lists are smaller then 1\n */\n useEffect(() => {\n setHasMultipleGroups(lists.length > 1);\n }, [lists]);\n\n const filterButtons = useMemo(() => {\n const items: IFilterButtonItem[] = [];\n\n if (lists.length <= 1) {\n return items;\n }\n\n lists.forEach(({ groupName }) => {\n if (groupName) {\n items.push({\n id: groupName,\n text: groupName,\n });\n }\n });\n\n return items;\n }, [lists]);\n\n /**\n * Filters the lists by the FilterButtons\n */\n const activeList = useMemo(() => {\n let newLists: ISearchBoxItems[] = [];\n\n if (groups[0] === 'all') {\n newLists = lists;\n } else {\n lists.forEach((list) => {\n if (list.groupName && groups.includes(list.groupName)) {\n newLists.push(list);\n }\n });\n }\n\n const newMatchingItems: ISearchBoxItems[] = [];\n\n newLists.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n const filteredMatchingListItems = newMatchingItems.map(({ list, groupName }) => ({\n groupName,\n list: list.filter((item) => {\n if (typeof customFilter === 'function') {\n return customFilter(item);\n }\n return !(newMatchingItems.length === 1 && item.text === value);\n }),\n }));\n\n setMatchingListsItems(filteredMatchingListItems);\n\n return newLists;\n }, [groups, lists, customFilter, shouldAddInputToList, value]);\n\n const handleOpen = useCallback(() => {\n if (boxRef.current) {\n const { x, y, height: bodyHeight } = boxRef.current.getBoundingClientRect();\n\n setInternalCoordinates({\n x,\n y: y + bodyHeight,\n });\n\n setIsAnimating(true);\n }\n }, []);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\n\n const handleFilterButtonsGroupSelect = (keys: string[]) => {\n setGroups(keys.length === 0 ? ['all'] : keys);\n };\n\n /**\n * This function closes the list of items\n */\n const handleOutsideClick = useCallback(\n (event: MouseEvent) => {\n if (\n boxRef.current &&\n !boxRef.current.contains(event.target as Node) &&\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n handleClose();\n }\n },\n [handleClose],\n );\n\n /**\n * This hook listens for clicks\n */\n useEffect(() => {\n document.addEventListener('click', handleOutsideClick);\n window.addEventListener('blur', () => handleClose());\n\n return () => {\n document.removeEventListener('click', handleOutsideClick);\n window.addEventListener('blur', () => handleClose());\n };\n }, [handleOutsideClick, boxRef, handleClose]);\n\n /**\n * This hook calculates the height\n */\n useEffect(() => {\n const textArray: string[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n list.forEach(({ text }) => textArray.push(text));\n if (!groupName) {\n return;\n }\n textArray.push(groupName);\n });\n\n if (shouldAddInputToList && inputToListValue !== '') {\n textArray.push(inputToListValue);\n }\n\n setHeight(calculateContentHeight(textArray));\n }, [inputToListValue, activeList, placeholder, shouldAddInputToList]);\n\n /**\n * This hook calculates the width\n */\n useEffect(() => {\n const input = document.getElementById('search_box_input');\n\n const getInputWidth = () => {\n if (input) {\n setWidth(input.offsetWidth);\n }\n };\n\n if (input) {\n new ResizeObserver(getInputWidth).observe(input);\n }\n }, []);\n\n useEffect(() => {\n if (selectedId) {\n activeList.forEach(({ list }) => {\n const selectedItem = list.find(({ id }) => id === selectedId);\n if (selectedItem) {\n setValue(selectedItem.text);\n\n if (selectedItem.imageUrl) {\n setSelectedImage(\n <StyledSearchBoxItemImage\n src={selectedItem.imageUrl}\n $shouldShowRoundImage={shouldShowRoundImage}\n />,\n );\n }\n }\n });\n }\n }, [activeList, selectedId, shouldShowRoundImage]);\n\n /**\n * This hook resets the value if the selectedId changes to undefined. This is an own useEffect because the value\n * should not be reset if the list changes and the selectedId is still undefined.\n */\n useEffect(() => {\n if (!selectedId) {\n setValue('');\n }\n }, [selectedId]);\n\n useEffect(() => {\n isAnimatingRef.current = isAnimating;\n }, [isAnimating]);\n\n useEffect(() => {\n if (matchingListsItems.length !== 0 && !isAnimatingRef.current && hasFocusRef.current) {\n handleOpen();\n }\n }, [handleOpen, matchingListsItems.length]);\n\n /**\n * This function sets the items on focus if shouldShowContentOnEmptyInput\n */\n const handleFocus = useCallback(() => {\n hasFocusRef.current = true;\n\n if (shouldShowContentOnEmptyInput) {\n const newMatchingItems: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n const filteredMatchingListItems = newMatchingItems.map(({ list, groupName }) => ({\n groupName,\n list: list.filter((item) => {\n if (typeof customFilter === 'function') {\n return customFilter(item);\n }\n return !(newMatchingItems.length === 1 && item.text === value);\n }),\n }));\n\n setMatchingListsItems(filteredMatchingListItems);\n\n if (filteredMatchingListItems.length !== 0) {\n handleOpen();\n }\n }\n }, [\n activeList,\n handleOpen,\n customFilter,\n shouldAddInputToList,\n shouldShowContentOnEmptyInput,\n value,\n ]);\n\n /**\n * This function filters the lists by input\n */\n\n useEffect(() => {\n const newMatchingItems: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n if (shouldAddInputToList && inputToListValue !== '') {\n newMatchingItems.forEach(({ list }) => {\n list.forEach(({ text }) => {\n if (text.toLowerCase() === inputToListValue.toLowerCase()) {\n setInputToListValue('');\n }\n });\n });\n }\n }, [\n inputToListValue,\n activeList,\n shouldAddInputToList,\n shouldShowContentOnEmptyInput,\n value,\n ]);\n\n const handleClick = useCallback(() => {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }, [handleClose, handleOpen, isAnimating]);\n\n const rightElement = useMemo(() => {\n if (!shouldShowToggleIcon) {\n return undefined;\n }\n\n return (\n <StyledSearchBoxIcon onClick={handleClick}>\n <Icon icons={['fa fa-chevron-down']} color={theme['006'] as string} />\n </StyledSearchBoxIcon>\n );\n }, [handleClick, shouldShowToggleIcon, theme]);\n\n const leftElement = useMemo(\n () => (\n <StyledSearchBoxLeftWrapper>\n {leftIcons && <Icon icons={leftIcons} />}\n {selectedImage && selectedImage}\n </StyledSearchBoxLeftWrapper>\n ),\n [leftIcons, selectedImage],\n );\n\n /**\n * This function handles changes of the input\n */\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const filteredLists: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: event.target.value });\n\n if (newList.length > 0) {\n filteredLists.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (filteredLists.length === 0 && shouldAddInputToList) {\n filteredLists.push({\n groupName: undefined,\n list: [],\n });\n }\n\n setSelectedImage(undefined);\n\n if (!shouldShowContentOnEmptyInput && !event.target.value) {\n setMatchingListsItems([]);\n } else {\n setMatchingListsItems(filteredLists);\n }\n\n if (filteredLists.length !== 0) {\n handleOpen();\n }\n\n setValue(event.target.value);\n setInputToListValue(event.target.value);\n\n if (typeof onChange === 'function') {\n onChange(event);\n }\n },\n [activeList, handleOpen, onChange, shouldAddInputToList, shouldShowContentOnEmptyInput],\n );\n\n /**\n * This function handles the blur event of the input\n */\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n hasFocusRef.current = false;\n\n if (typeof onBlur === 'function') {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n /**\n * This function handles the item selection\n */\n const handleSelect = useCallback(\n (item: ISearchBoxItem) => {\n const newItem = {\n ...item,\n text: item.text.replace('<b>', '').replace('</b>', '').replace('</b', ''),\n };\n\n setValue(newItem.text);\n handleClose();\n\n setSelectedImage(\n newItem.imageUrl ? (\n <StyledSearchBoxItemImage\n src={newItem.imageUrl}\n $shouldShowRoundImage={shouldShowRoundImage}\n />\n ) : undefined,\n );\n\n setMatchingListsItems([]);\n\n if (typeof onSelect === 'function') {\n onSelect(newItem);\n }\n },\n [handleClose, onSelect, shouldShowRoundImage],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n matchingListsItems.forEach(({ groupName, list }, index) => {\n if (hasMultipleGroups) {\n if (list.length <= 0) {\n return;\n }\n\n if (index !== 0) {\n items.push(<GroupName key={groupName} name={groupName ?? ''} />);\n }\n }\n\n list.forEach(({ id, text, imageUrl }) => {\n items.push(\n <SearchBoxItem\n key={`${id}_${groupName ?? ''}`}\n id={id}\n text={text}\n imageUrl={imageUrl}\n shouldShowRoundImage={shouldShowRoundImage}\n onSelect={handleSelect}\n groupName={groupName}\n />,\n );\n });\n });\n\n if (shouldAddInputToList && inputToListValue !== '') {\n items.push(\n <SearchBoxItem\n id=\"input-value\"\n onSelect={handleSelect}\n text={`<b>${inputToListValue}</b`}\n />,\n );\n }\n\n return items;\n }, [\n matchingListsItems,\n shouldAddInputToList,\n inputToListValue,\n hasMultipleGroups,\n shouldShowRoundImage,\n handleSelect,\n ]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating || matchingListsItems.length === 0) {\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const children = contentRef.current?.children;\n\n if (!children) {\n return;\n }\n\n const childrenArray = Array.from(children);\n\n const newChildren = childrenArray.find((child) =>\n child.id.startsWith('searchbox-content__'),\n )?.children;\n\n if (newChildren && newChildren.length > 0) {\n const filteredChildren = Array.from(newChildren).filter(\n (child) => (child as HTMLElement).dataset.isgroupname !== 'true',\n );\n setFilteredChildrenArray(filteredChildren);\n\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (e.key === 'ArrowUp' ? -1 : 1) +\n filteredChildren.length) %\n filteredChildren.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = filteredChildren[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const newElement = filteredChildren[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n if (filteredChildrenArray) {\n const element = filteredChildrenArray[focusedIndex];\n\n if (!element) {\n return;\n }\n\n const { id, textContent } = element;\n\n let imageUrl: string | undefined;\n\n // Just Ignore, it works\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (element.children[0]?.attributes.src) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n imageUrl = element.children[0]?.attributes.src.nodeValue as string;\n }\n\n handleSelect({\n id: id.replace('search-box-item__', ''),\n text: textContent ?? '',\n imageUrl,\n });\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [\n filteredChildrenArray,\n focusedIndex,\n handleSelect,\n isAnimating,\n matchingListsItems.length,\n ]);\n\n const handleKeyPress = useCallback((event: KeyboardEvent) => {\n if (event.keyCode === 27) {\n setMatchingListsItems([]);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n clear: () => setValue(''),\n }),\n [],\n );\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyPress);\n\n return () => {\n document.addEventListener('keydown', handleKeyPress);\n };\n }, [handleKeyPress]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isAnimating &&\n matchingListsItems.length !== 0 &&\n (value.trim() !== '' || shouldShowContentOnEmptyInput) && (\n <SearchBoxBody\n filterButtons={filterButtons}\n selectedGroups={groups}\n width={width}\n coordinates={internalCoordinates}\n browser={browser?.name as BrowserName}\n height={height}\n ref={contentRef}\n onGroupSelect={handleFilterButtonsGroupSelect}\n shouldHideFilterButtons={shouldHideFilterButtons}\n >\n {content}\n </SearchBoxBody>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n browser?.name,\n newContainer,\n content,\n filterButtons,\n groups,\n height,\n internalCoordinates,\n isAnimating,\n width,\n shouldHideFilterButtons,\n matchingListsItems.length,\n value,\n shouldShowContentOnEmptyInput,\n ]);\n\n return useMemo(\n () => (\n <StyledSearchBox ref={boxRef}>\n <div id=\"search_box_input\">\n <Input\n ref={inputRef}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n leftElement={leftElement}\n rightElement={rightElement}\n value={value}\n />\n </div>\n {portal}\n </StyledSearchBox>\n ),\n [\n handleBlur,\n handleChange,\n handleFocus,\n leftElement,\n onKeyDown,\n placeholder,\n portal,\n rightElement,\n value,\n ],\n );\n },\n);\n\nSearchBox.displayName = 'SearchBox';\n\nexport default SearchBox;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SearchBox.js","names":["_chaynsApi","require","_react","_react2","_interopRequireWildcard","_reactDom","_styledComponents","_calculate","_searchBox","_Icon","_interopRequireDefault","_Input","_GroupName","_SearchBoxBody","_SearchBoxItem","_SearchBoxItem2","_SearchBox","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SearchBox","forwardRef","isInvalid","placeholder","leftIcons","lists","onChange","onBlur","onSelect","onKeyDown","selectedId","container","shouldHideFilterButtons","shouldShowRoundImage","shouldShowContentOnEmptyInput","shouldAddInputToList","shouldShowToggleIcon","customFilter","ref","matchingListsItems","setMatchingListsItems","useState","selectedImage","setSelectedImage","value","setValue","isAnimating","setIsAnimating","height","setHeight","width","setWidth","focusedIndex","setFocusedIndex","hasMultipleGroups","setHasMultipleGroups","length","filteredChildrenArray","setFilteredChildrenArray","inputToListValue","setInputToListValue","groups","setGroups","portal","setPortal","internalCoordinates","setInternalCoordinates","x","y","newContainer","setNewContainer","boxRef","useRef","contentRef","inputRef","hasFocusRef","isAnimatingRef","theme","useTheme","browser","getDevice","useEffect","current","el","element","closest","Element","getBoundingClientRect","filterButtons","useMemo","items","forEach","groupName","push","id","text","activeList","newLists","list","includes","newMatchingItems","newList","searchList","searchString","undefined","filteredMatchingListItems","map","filter","item","handleOpen","useCallback","bodyHeight","handleClose","handleFilterButtonsGroupSelect","keys","handleOutsideClick","event","contains","target","document","addEventListener","window","removeEventListener","textArray","calculateContentHeight","input","getElementById","getInputWidth","offsetWidth","ResizeObserver","observe","selectedItem","find","imageUrl","createElement","StyledSearchBoxItemImage","src","$shouldShowRoundImage","handleFocus","toLowerCase","handleClick","rightElement","StyledSearchBoxIcon","onClick","icons","color","leftElement","StyledSearchBoxLeftWrapper","handleChange","filteredLists","handleBlur","handleSelect","newItem","replace","content","index","key","name","handleKeyDown","_contentRef$current","_childrenArray$find","preventDefault","children","childrenArray","Array","from","newChildren","child","startsWith","filteredChildren","dataset","isgroupname","newIndex","prevElement","tabIndex","newElement","focus","_element$children$","textContent","attributes","_element$children$2","nodeValue","handleKeyPress","keyCode","useImperativeHandle","clear","createPortal","AnimatePresence","initial","trim","selectedGroups","coordinates","onGroupSelect","StyledSearchBox","onFocus","displayName","_default","exports"],"sources":["../../../../src/components/search-box/SearchBox.tsx"],"sourcesContent":["import { getDevice } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n FocusEvent,\n FocusEventHandler,\n forwardRef,\n KeyboardEventHandler,\n ReactElement,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useTheme } from 'styled-components';\nimport { BrowserName } from '../../types/chayns';\nimport type { IFilterButtonItem } from '../../types/filterButtons';\nimport type { ISearchBoxItem, ISearchBoxItems } from '../../types/searchBox';\nimport { calculateContentHeight } from '../../utils/calculate';\nimport { searchList } from '../../utils/searchBox';\nimport type { ContextMenuCoordinates } from '../context-menu/ContextMenu';\nimport Icon from '../icon/Icon';\nimport Input from '../input/Input';\nimport GroupName from './group-name/GroupName';\nimport SearchBoxBody from './search-box-body/SearchBoxBody';\nimport SearchBoxItem from './search-box-item/SearchBoxItem';\nimport { StyledSearchBoxItemImage } from './search-box-item/SearchBoxItem.styles';\nimport {\n StyledSearchBox,\n StyledSearchBoxIcon,\n StyledSearchBoxLeftWrapper,\n} from './SearchBox.styles';\n\nexport type SearchBoxRef = {\n clear: VoidFunction;\n};\n\nexport type SearchBoxProps = {\n /**\n * The element where the content of the `ComboBox` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * If true, the input field is marked as invalid\n */\n isInvalid?: boolean;\n /**\n * An optional icon that is displayed inside the left side of the input.\n */\n leftIcons?: string[];\n /**\n * List of groups with items that can be searched. It is possible to give only one list; if multiple lists are provided, the 'group name' parameter becomes mandatory.\n */\n lists: ISearchBoxItems[];\n /**\n * The placeholder that should be displayed.\n */\n placeholder?: string;\n /**\n * Function to be executed when the input lost focus.\n */\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when the input is changed.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function that is executed when a letter is pressed\n */\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when an item is selected.\n */\n onSelect?: (item: ISearchBoxItem) => void;\n /**\n * Control the selected item. If you use this prop, make sure to update it when the user selects an item.\n */\n selectedId?: string;\n /**\n * If true, the value in the Input is displayed in the list.\n */\n shouldAddInputToList: boolean;\n /**\n * If true, the filter buttons are hidden.\n */\n shouldHideFilterButtons?: boolean;\n /**\n * Whether the full list of items should be displayed if the input is empty.\n */\n shouldShowContentOnEmptyInput?: boolean;\n /**\n * If true, the images of the items are displayed in a round shape.\n */\n shouldShowRoundImage?: boolean;\n /**\n * Whether the icon to open and close the list should be displayed.\n */\n shouldShowToggleIcon?: boolean;\n /**\n * An optional callback function to filter the elements to be displayed\n */\n customFilter?: (item: ISearchBoxItem) => boolean;\n};\n\nconst SearchBox: FC<SearchBoxProps> = forwardRef<SearchBoxRef, SearchBoxProps>(\n (\n {\n isInvalid = false,\n placeholder,\n leftIcons,\n lists,\n onChange,\n onBlur,\n onSelect,\n onKeyDown,\n selectedId,\n container,\n shouldHideFilterButtons = false,\n shouldShowRoundImage,\n shouldShowContentOnEmptyInput = true,\n shouldAddInputToList = true,\n shouldShowToggleIcon = false,\n customFilter,\n },\n ref,\n ) => {\n const [matchingListsItems, setMatchingListsItems] = useState<ISearchBoxItems[]>(lists);\n const [selectedImage, setSelectedImage] = useState<ReactElement>();\n const [value, setValue] = useState('');\n const [isAnimating, setIsAnimating] = useState(false);\n const [height, setHeight] = useState<number>(0);\n const [width, setWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [hasMultipleGroups, setHasMultipleGroups] = useState<boolean>(lists.length > 1);\n const [filteredChildrenArray, setFilteredChildrenArray] = useState<Element[]>();\n const [inputToListValue, setInputToListValue] = useState<string>('');\n const [groups, setGroups] = useState<string[]>(['all']);\n const [portal, setPortal] = useState<ReactPortal>();\n const [internalCoordinates, setInternalCoordinates] = useState<ContextMenuCoordinates>({\n x: 0,\n y: 0,\n });\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n\n const boxRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const hasFocusRef = useRef<boolean>(false);\n const isAnimatingRef = useRef<boolean>(false);\n\n const theme = useTheme();\n\n const { browser } = getDevice();\n\n useEffect(() => {\n if (boxRef.current && !container) {\n const el = boxRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner') || el.closest('body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n if (boxRef.current) {\n const { x, y } = boxRef.current.getBoundingClientRect();\n\n setInternalCoordinates({\n x,\n y,\n });\n }\n }, []);\n\n /**\n * Checks if Lists are smaller then 1\n */\n useEffect(() => {\n setHasMultipleGroups(lists.length > 1);\n }, [lists]);\n\n const filterButtons = useMemo(() => {\n const items: IFilterButtonItem[] = [];\n\n if (lists.length <= 1) {\n return items;\n }\n\n lists.forEach(({ groupName }) => {\n if (groupName) {\n items.push({\n id: groupName,\n text: groupName,\n });\n }\n });\n\n return items;\n }, [lists]);\n\n /**\n * Filters the lists by the FilterButtons\n */\n const activeList = useMemo(() => {\n let newLists: ISearchBoxItems[] = [];\n\n if (groups[0] === 'all') {\n newLists = lists;\n } else {\n lists.forEach((list) => {\n if (list.groupName && groups.includes(list.groupName)) {\n newLists.push(list);\n }\n });\n }\n\n const newMatchingItems: ISearchBoxItems[] = [];\n\n newLists.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n const filteredMatchingListItems = newMatchingItems.map(({ list, groupName }) => ({\n groupName,\n list: list.filter((item) => {\n if (typeof customFilter === 'function') {\n return customFilter(item);\n }\n return !(newMatchingItems.length === 1 && item.text === value);\n }),\n }));\n\n setMatchingListsItems(filteredMatchingListItems);\n\n return newLists;\n }, [groups, lists, customFilter, shouldAddInputToList, value]);\n\n const handleOpen = useCallback(() => {\n if (boxRef.current) {\n const { x, y, height: bodyHeight } = boxRef.current.getBoundingClientRect();\n\n setInternalCoordinates({\n x,\n y: y + bodyHeight,\n });\n\n setIsAnimating(true);\n }\n }, []);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\n\n const handleFilterButtonsGroupSelect = (keys: string[]) => {\n setGroups(keys.length === 0 ? ['all'] : keys);\n };\n\n /**\n * This function closes the list of items\n */\n const handleOutsideClick = useCallback(\n (event: MouseEvent) => {\n if (\n boxRef.current &&\n !boxRef.current.contains(event.target as Node) &&\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n handleClose();\n }\n },\n [handleClose],\n );\n\n /**\n * This hook listens for clicks\n */\n useEffect(() => {\n document.addEventListener('click', handleOutsideClick);\n window.addEventListener('blur', () => handleClose());\n\n return () => {\n document.removeEventListener('click', handleOutsideClick);\n window.addEventListener('blur', () => handleClose());\n };\n }, [handleOutsideClick, boxRef, handleClose]);\n\n /**\n * This hook calculates the height\n */\n useEffect(() => {\n const textArray: string[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n list.forEach(({ text }) => textArray.push(text));\n if (!groupName) {\n return;\n }\n textArray.push(groupName);\n });\n\n if (shouldAddInputToList && inputToListValue !== '') {\n textArray.push(inputToListValue);\n }\n\n setHeight(calculateContentHeight(textArray));\n }, [inputToListValue, activeList, placeholder, shouldAddInputToList]);\n\n /**\n * This hook calculates the width\n */\n useEffect(() => {\n const input = document.getElementById('search_box_input');\n\n const getInputWidth = () => {\n if (input) {\n setWidth(input.offsetWidth);\n }\n };\n\n if (input) {\n new ResizeObserver(getInputWidth).observe(input);\n }\n }, []);\n\n useEffect(() => {\n if (selectedId) {\n activeList.forEach(({ list }) => {\n const selectedItem = list.find(({ id }) => id === selectedId);\n if (selectedItem) {\n setValue(selectedItem.text);\n\n if (selectedItem.imageUrl) {\n setSelectedImage(\n <StyledSearchBoxItemImage\n src={selectedItem.imageUrl}\n $shouldShowRoundImage={shouldShowRoundImage}\n />,\n );\n }\n }\n });\n }\n }, [activeList, selectedId, shouldShowRoundImage]);\n\n /**\n * This hook resets the value if the selectedId changes to undefined. This is an own useEffect because the value\n * should not be reset if the list changes and the selectedId is still undefined.\n */\n useEffect(() => {\n if (!selectedId) {\n setValue('');\n }\n }, [selectedId]);\n\n useEffect(() => {\n isAnimatingRef.current = isAnimating;\n }, [isAnimating]);\n\n useEffect(() => {\n if (matchingListsItems.length !== 0 && !isAnimatingRef.current && hasFocusRef.current) {\n handleOpen();\n }\n }, [handleOpen, matchingListsItems.length]);\n\n /**\n * This function sets the items on focus if shouldShowContentOnEmptyInput\n */\n const handleFocus = useCallback(() => {\n hasFocusRef.current = true;\n\n if (shouldShowContentOnEmptyInput) {\n const newMatchingItems: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n const filteredMatchingListItems = newMatchingItems.map(({ list, groupName }) => ({\n groupName,\n list: list.filter((item) => {\n if (typeof customFilter === 'function') {\n return customFilter(item);\n }\n return !(newMatchingItems.length === 1 && item.text === value);\n }),\n }));\n\n setMatchingListsItems(filteredMatchingListItems);\n\n if (filteredMatchingListItems.length !== 0) {\n handleOpen();\n }\n }\n }, [\n activeList,\n handleOpen,\n customFilter,\n shouldAddInputToList,\n shouldShowContentOnEmptyInput,\n value,\n ]);\n\n /**\n * This function filters the lists by input\n */\n\n useEffect(() => {\n const newMatchingItems: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n if (shouldAddInputToList && inputToListValue !== '') {\n newMatchingItems.forEach(({ list }) => {\n list.forEach(({ text }) => {\n if (text.toLowerCase() === inputToListValue.toLowerCase()) {\n setInputToListValue('');\n }\n });\n });\n }\n }, [\n inputToListValue,\n activeList,\n shouldAddInputToList,\n shouldShowContentOnEmptyInput,\n value,\n ]);\n\n const handleClick = useCallback(() => {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }, [handleClose, handleOpen, isAnimating]);\n\n const rightElement = useMemo(() => {\n if (!shouldShowToggleIcon) {\n return undefined;\n }\n\n return (\n <StyledSearchBoxIcon onClick={handleClick}>\n <Icon icons={['fa fa-chevron-down']} color={theme['006'] as string} />\n </StyledSearchBoxIcon>\n );\n }, [handleClick, shouldShowToggleIcon, theme]);\n\n const leftElement = useMemo(\n () => (\n <StyledSearchBoxLeftWrapper>\n {leftIcons && <Icon icons={leftIcons} />}\n {selectedImage && selectedImage}\n </StyledSearchBoxLeftWrapper>\n ),\n [leftIcons, selectedImage],\n );\n\n /**\n * This function handles changes of the input\n */\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const filteredLists: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: event.target.value });\n\n if (newList.length > 0) {\n filteredLists.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (filteredLists.length === 0 && shouldAddInputToList) {\n filteredLists.push({\n groupName: undefined,\n list: [],\n });\n }\n\n setSelectedImage(undefined);\n\n if (!shouldShowContentOnEmptyInput && !event.target.value) {\n setMatchingListsItems([]);\n } else {\n setMatchingListsItems(filteredLists);\n }\n\n if (filteredLists.length !== 0) {\n handleOpen();\n }\n\n setValue(event.target.value);\n setInputToListValue(event.target.value);\n\n if (typeof onChange === 'function') {\n onChange(event);\n }\n },\n [activeList, handleOpen, onChange, shouldAddInputToList, shouldShowContentOnEmptyInput],\n );\n\n /**\n * This function handles the blur event of the input\n */\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n hasFocusRef.current = false;\n\n if (typeof onBlur === 'function') {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n /**\n * This function handles the item selection\n */\n const handleSelect = useCallback(\n (item: ISearchBoxItem) => {\n const newItem = {\n ...item,\n text: item.text.replace('<b>', '').replace('</b>', '').replace('</b', ''),\n };\n\n setValue(newItem.text);\n handleClose();\n\n setSelectedImage(\n newItem.imageUrl ? (\n <StyledSearchBoxItemImage\n src={newItem.imageUrl}\n $shouldShowRoundImage={shouldShowRoundImage}\n />\n ) : undefined,\n );\n\n setMatchingListsItems([]);\n\n if (typeof onSelect === 'function') {\n onSelect(newItem);\n }\n },\n [handleClose, onSelect, shouldShowRoundImage],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n matchingListsItems.forEach(({ groupName, list }, index) => {\n if (hasMultipleGroups) {\n if (list.length <= 0) {\n return;\n }\n\n if (index !== 0) {\n items.push(<GroupName key={groupName} name={groupName ?? ''} />);\n }\n }\n\n list.forEach(({ id, text, imageUrl }) => {\n items.push(\n <SearchBoxItem\n key={`${id}_${groupName ?? ''}`}\n id={id}\n text={text}\n imageUrl={imageUrl}\n shouldShowRoundImage={shouldShowRoundImage}\n onSelect={handleSelect}\n groupName={groupName}\n />,\n );\n });\n });\n\n if (shouldAddInputToList && inputToListValue !== '') {\n items.push(\n <SearchBoxItem\n id=\"input-value\"\n onSelect={handleSelect}\n text={`<b>${inputToListValue}</b`}\n />,\n );\n }\n\n return items;\n }, [\n matchingListsItems,\n shouldAddInputToList,\n inputToListValue,\n hasMultipleGroups,\n shouldShowRoundImage,\n handleSelect,\n ]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating || matchingListsItems.length === 0) {\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const children = contentRef.current?.children;\n\n if (!children) {\n return;\n }\n\n const childrenArray = Array.from(children);\n\n const newChildren = childrenArray.find((child) =>\n child.id.startsWith('searchbox-content__'),\n )?.children;\n\n if (newChildren && newChildren.length > 0) {\n const filteredChildren = Array.from(newChildren).filter(\n (child) => (child as HTMLElement).dataset.isgroupname !== 'true',\n );\n setFilteredChildrenArray(filteredChildren);\n\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (e.key === 'ArrowUp' ? -1 : 1) +\n filteredChildren.length) %\n filteredChildren.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = filteredChildren[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const newElement = filteredChildren[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n if (filteredChildrenArray) {\n const element = filteredChildrenArray[focusedIndex];\n\n if (!element) {\n return;\n }\n\n const { id, textContent } = element;\n\n let imageUrl: string | undefined;\n\n // Just Ignore, it works\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (element.children[0]?.attributes.src) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n imageUrl = element.children[0]?.attributes.src.nodeValue as string;\n }\n\n handleSelect({\n id: id.replace('search-box-item__', ''),\n text: textContent ?? '',\n imageUrl,\n });\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [\n filteredChildrenArray,\n focusedIndex,\n handleSelect,\n isAnimating,\n matchingListsItems.length,\n ]);\n\n const handleKeyPress = useCallback((event: KeyboardEvent) => {\n if (event.keyCode === 27) {\n setMatchingListsItems([]);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n clear: () => setValue(''),\n }),\n [],\n );\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyPress);\n\n return () => {\n document.addEventListener('keydown', handleKeyPress);\n };\n }, [handleKeyPress]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isAnimating &&\n matchingListsItems.length !== 0 &&\n (value.trim() !== '' || shouldShowContentOnEmptyInput) && (\n <SearchBoxBody\n filterButtons={filterButtons}\n selectedGroups={groups}\n width={width}\n coordinates={internalCoordinates}\n browser={browser?.name as BrowserName}\n height={height}\n ref={contentRef}\n onGroupSelect={handleFilterButtonsGroupSelect}\n shouldHideFilterButtons={shouldHideFilterButtons}\n >\n {content}\n </SearchBoxBody>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n browser?.name,\n newContainer,\n content,\n filterButtons,\n groups,\n height,\n internalCoordinates,\n isAnimating,\n width,\n shouldHideFilterButtons,\n matchingListsItems.length,\n value,\n shouldShowContentOnEmptyInput,\n ]);\n\n return useMemo(\n () => (\n <StyledSearchBox ref={boxRef}>\n <div id=\"search_box_input\">\n <Input\n isInvalid={isInvalid}\n ref={inputRef}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n leftElement={leftElement}\n rightElement={rightElement}\n value={value}\n />\n </div>\n {portal}\n </StyledSearchBox>\n ),\n [\n handleBlur,\n handleChange,\n handleFocus,\n isInvalid,\n leftElement,\n onKeyDown,\n placeholder,\n portal,\n rightElement,\n value,\n ],\n );\n },\n);\n\nSearchBox.displayName = 'SearchBox';\n\nexport default SearchBox;\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ export const StyledComboBoxItem = styled.div`
16
16
  }};
17
17
  display: flex;
18
18
  gap: 10px;
19
- padding: 4px 10px;
19
+ padding: 8px 10px;
20
20
  transition: background-color 0.2s ease-in-out;
21
21
 
22
22
  ${_ref3 => {
@@ -102,13 +102,6 @@ export const StyledComboBoxItemContentHeader = styled.div`
102
102
  $subtext
103
103
  } = _ref10;
104
104
  return $text && $subtext ? 'bold' : 'normal';
105
- }};
106
- font-size: ${_ref11 => {
107
- let {
108
- $text,
109
- $subtext
110
- } = _ref11;
111
- return $text && $subtext && '17px';
112
105
  }};
113
106
  `;
114
107
  export const StyledComboBoxItemContentHeaderWrapper = styled.div`
@@ -127,7 +120,7 @@ export const StyledComboBoxItemContentHeaderRightElement = styled.div`
127
120
  display: flex;
128
121
  `;
129
122
  export const StyledComboBoxItemContentSubtext = styled.div`
130
- font-size: 90%;
123
+ font-size: 85%;
131
124
  margin-top: 2px;
132
125
  `;
133
126
  //# sourceMappingURL=ComboBoxItem.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBoxItem.styles.js","names":["styled","css","StyledComboBoxItem","div","_ref","theme","$isSelected","_ref2","text","_ref3","$isDisabled","_ref4","$isTouch","StyledComboBoxItemImage","img","_ref5","$shouldShowRoundImage","_ref6","$background","_ref7","_ref8","$shouldShowBigImage","_ref9","StyledComboBoxItemContent","StyledComboBoxItemContentHeader","_ref10","$text","$subtext","_ref11","StyledComboBoxItemContentHeaderWrapper","StyledComboBoxItemContentHeaderWrapperText","StyledComboBoxItemContentHeaderRightElement","StyledComboBoxItemContentSubtext"],"sources":["../../../../../src/components/combobox/combobox-item/ComboBoxItem.styles.ts"],"sourcesContent":["import { CSSProperties } from 'react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledComboBoxItemProps = WithTheme<{\n $isDisabled?: boolean;\n $isSelected: boolean;\n $isTouch: boolean;\n}>;\n\nexport const StyledComboBoxItem = styled.div<StyledComboBoxItemProps>`\n align-items: center;\n background-color: ${({ theme, $isSelected }: StyledComboBoxItemProps) =>\n $isSelected && theme['secondary-102']};\n color: ${({ theme }: StyledComboBoxItemProps) => theme.text};\n display: flex;\n gap: 10px;\n padding: 4px 10px;\n transition: background-color 0.2s ease-in-out;\n\n ${({ $isDisabled }) =>\n $isDisabled &&\n css`\n opacity: 0.5;\n pointer-events: none;\n `}\n\n ${({ $isDisabled, $isTouch, theme }: StyledComboBoxItemProps) =>\n !$isDisabled &&\n !$isTouch &&\n css`\n &:hover {\n background-color: ${theme['secondary-101']};\n }\n\n &:focus {\n background-color: ${theme['secondary-101']};\n }\n `}\n`;\n\ntype StyledComboBoxItemImageProps = WithTheme<{\n $background?: CSSProperties['background'];\n $shouldShowBigImage?: boolean;\n $shouldShowRoundImage?: boolean;\n}>;\n\nexport const StyledComboBoxItemImage = styled.img<StyledComboBoxItemImageProps>`\n ${({ $shouldShowRoundImage }) =>\n $shouldShowRoundImage &&\n css`\n border-radius: 50%;\n `}\n\n background: ${({ $background, theme }: StyledComboBoxItemImageProps) =>\n $background || `rgba(${theme['text-rgb'] ?? '0,0,0'}, 0.1)`};\n box-shadow: 0 0 0 1px\n rgba(${({ theme }: StyledComboBoxItemImageProps) => theme['009-rgb']}, 0.15);\n flex: 0 0 auto;\n height: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '40px' : '22px')};\n width: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '40px' : '22px')};\n`;\n\nexport const StyledComboBoxItemContent = styled.div`\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n line-height: normal;\n min-width: 0;\n width: 100%;\n`;\n\ntype StyledComboBoxItemContentHeaderProps = {\n $text?: string;\n $subtext?: string;\n};\nexport const StyledComboBoxItemContentHeader = styled.div<StyledComboBoxItemContentHeaderProps>`\n align-items: center;\n display: flex;\n justify-content: space-between;\n font-weight: ${({ $text, $subtext }) => ($text && $subtext ? 'bold' : 'normal')};\n font-size: ${({ $text, $subtext }) => $text && $subtext && '17px'};\n`;\n\nexport const StyledComboBoxItemContentHeaderWrapper = styled.div`\n display: flex;\n flex: 1 1 auto;\n gap: 4px;\n min-width: 0;\n`;\n\nexport const StyledComboBoxItemContentHeaderWrapperText = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const StyledComboBoxItemContentHeaderRightElement = styled.div`\n align-items: center;\n display: flex;\n`;\n\nexport const StyledComboBoxItemContentSubtext = styled.div`\n font-size: 90%;\n margin-top: 2px;\n`;\n"],"mappings":"AACA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAS/C,OAAO,MAAMC,kBAAkB,GAAGF,MAAM,CAACG,GAA4B;AACrE;AACA,wBAAwBC,IAAA;EAAA,IAAC;IAAEC,KAAK;IAAEC;EAAqC,CAAC,GAAAF,IAAA;EAAA,OAChEE,WAAW,IAAID,KAAK,CAAC,eAAe,CAAC;AAAA;AAC7C,aAAaE,KAAA;EAAA,IAAC;IAAEF;EAA+B,CAAC,GAAAE,KAAA;EAAA,OAAKF,KAAK,CAACG,IAAI;AAAA;AAC/D;AACA;AACA;AACA;AACA;AACA,MAAMC,KAAA;EAAA,IAAC;IAAEC;EAAY,CAAC,GAAAD,KAAA;EAAA,OACdC,WAAW,IACXT,GAAG;AACX;AACA;AACA,SAAS;AAAA;AACT;AACA,MAAMU,KAAA;EAAA,IAAC;IAAED,WAAW;IAAEE,QAAQ;IAAEP;EAA+B,CAAC,GAAAM,KAAA;EAAA,OACxD,CAACD,WAAW,IACZ,CAACE,QAAQ,IACTX,GAAG;AACX;AACA,oCAAoCI,KAAK,CAAC,eAAe,CAAC;AAC1D;AACA;AACA;AACA,oCAAoCA,KAAK,CAAC,eAAe,CAAC;AAC1D;AACA,SAAS;AAAA;AACT,CAAC;AAQD,OAAO,MAAMQ,uBAAuB,GAAGb,MAAM,CAACc,GAAiC;AAC/E,MAAMC,KAAA;EAAA,IAAC;IAAEC;EAAsB,CAAC,GAAAD,KAAA;EAAA,OACxBC,qBAAqB,IACrBf,GAAG;AACX;AACA,SAAS;AAAA;AACT;AACA,kBAAkBgB,KAAA;EAAA,IAAC;IAAEC,WAAW;IAAEb;EAAoC,CAAC,GAAAY,KAAA;EAAA,OAC/DC,WAAW,IAAI,QAAQb,KAAK,CAAC,UAAU,CAAC,IAAI,OAAO,QAAQ;AAAA;AACnE;AACA,eAAec,KAAA;EAAA,IAAC;IAAEd;EAAoC,CAAC,GAAAc,KAAA;EAAA,OAAKd,KAAK,CAAC,SAAS,CAAC;AAAA;AAC5E;AACA,cAAce,KAAA;EAAA,IAAC;IAAEC;EAAoB,CAAC,GAAAD,KAAA;EAAA,OAAMC,mBAAmB,GAAG,MAAM,GAAG,MAAM;AAAA,CAAC;AAClF,aAAaC,KAAA;EAAA,IAAC;IAAED;EAAoB,CAAC,GAAAC,KAAA;EAAA,OAAMD,mBAAmB,GAAG,MAAM,GAAG,MAAM;AAAA,CAAC;AACjF,CAAC;AAED,OAAO,MAAME,yBAAyB,GAAGvB,MAAM,CAACG,GAAG;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAMD,OAAO,MAAMqB,+BAA+B,GAAGxB,MAAM,CAACG,GAAyC;AAC/F;AACA;AACA;AACA,mBAAmBsB,MAAA;EAAA,IAAC;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAAF,MAAA;EAAA,OAAMC,KAAK,IAAIC,QAAQ,GAAG,MAAM,GAAG,QAAQ;AAAA,CAAC;AACnF,iBAAiBC,MAAA;EAAA,IAAC;IAAEF,KAAK;IAAEC;EAAS,CAAC,GAAAC,MAAA;EAAA,OAAKF,KAAK,IAAIC,QAAQ,IAAI,MAAM;AAAA;AACrE,CAAC;AAED,OAAO,MAAME,sCAAsC,GAAG7B,MAAM,CAACG,GAAG;AAChE;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAM2B,0CAA0C,GAAG9B,MAAM,CAACG,GAAG;AACpE;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAM4B,2CAA2C,GAAG/B,MAAM,CAACG,GAAG;AACrE;AACA;AACA,CAAC;AAED,OAAO,MAAM6B,gCAAgC,GAAGhC,MAAM,CAACG,GAAG;AAC1D;AACA;AACA,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ComboBoxItem.styles.js","names":["styled","css","StyledComboBoxItem","div","_ref","theme","$isSelected","_ref2","text","_ref3","$isDisabled","_ref4","$isTouch","StyledComboBoxItemImage","img","_ref5","$shouldShowRoundImage","_ref6","$background","_ref7","_ref8","$shouldShowBigImage","_ref9","StyledComboBoxItemContent","StyledComboBoxItemContentHeader","_ref10","$text","$subtext","StyledComboBoxItemContentHeaderWrapper","StyledComboBoxItemContentHeaderWrapperText","StyledComboBoxItemContentHeaderRightElement","StyledComboBoxItemContentSubtext"],"sources":["../../../../../src/components/combobox/combobox-item/ComboBoxItem.styles.ts"],"sourcesContent":["import { CSSProperties } from 'react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledComboBoxItemProps = WithTheme<{\n $isDisabled?: boolean;\n $isSelected: boolean;\n $isTouch: boolean;\n}>;\n\nexport const StyledComboBoxItem = styled.div<StyledComboBoxItemProps>`\n align-items: center;\n background-color: ${({ theme, $isSelected }: StyledComboBoxItemProps) =>\n $isSelected && theme['secondary-102']};\n color: ${({ theme }: StyledComboBoxItemProps) => theme.text};\n display: flex;\n gap: 10px;\n padding: 8px 10px;\n transition: background-color 0.2s ease-in-out;\n\n ${({ $isDisabled }) =>\n $isDisabled &&\n css`\n opacity: 0.5;\n pointer-events: none;\n `}\n\n ${({ $isDisabled, $isTouch, theme }: StyledComboBoxItemProps) =>\n !$isDisabled &&\n !$isTouch &&\n css`\n &:hover {\n background-color: ${theme['secondary-101']};\n }\n\n &:focus {\n background-color: ${theme['secondary-101']};\n }\n `}\n`;\n\ntype StyledComboBoxItemImageProps = WithTheme<{\n $background?: CSSProperties['background'];\n $shouldShowBigImage?: boolean;\n $shouldShowRoundImage?: boolean;\n}>;\n\nexport const StyledComboBoxItemImage = styled.img<StyledComboBoxItemImageProps>`\n ${({ $shouldShowRoundImage }) =>\n $shouldShowRoundImage &&\n css`\n border-radius: 50%;\n `}\n\n background: ${({ $background, theme }: StyledComboBoxItemImageProps) =>\n $background || `rgba(${theme['text-rgb'] ?? '0,0,0'}, 0.1)`};\n box-shadow: 0 0 0 1px\n rgba(${({ theme }: StyledComboBoxItemImageProps) => theme['009-rgb']}, 0.15);\n flex: 0 0 auto;\n height: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '40px' : '22px')};\n width: ${({ $shouldShowBigImage }) => ($shouldShowBigImage ? '40px' : '22px')};\n`;\n\nexport const StyledComboBoxItemContent = styled.div`\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n line-height: normal;\n min-width: 0;\n width: 100%;\n`;\n\ntype StyledComboBoxItemContentHeaderProps = {\n $text?: string;\n $subtext?: string;\n};\n\nexport const StyledComboBoxItemContentHeader = styled.div<StyledComboBoxItemContentHeaderProps>`\n align-items: center;\n display: flex;\n justify-content: space-between;\n font-weight: ${({ $text, $subtext }) => ($text && $subtext ? 'bold' : 'normal')};\n`;\n\nexport const StyledComboBoxItemContentHeaderWrapper = styled.div`\n display: flex;\n flex: 1 1 auto;\n gap: 4px;\n min-width: 0;\n`;\n\nexport const StyledComboBoxItemContentHeaderWrapperText = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const StyledComboBoxItemContentHeaderRightElement = styled.div`\n align-items: center;\n display: flex;\n`;\n\nexport const StyledComboBoxItemContentSubtext = styled.div`\n font-size: 85%;\n margin-top: 2px;\n`;\n"],"mappings":"AACA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAS/C,OAAO,MAAMC,kBAAkB,GAAGF,MAAM,CAACG,GAA4B;AACrE;AACA,wBAAwBC,IAAA;EAAA,IAAC;IAAEC,KAAK;IAAEC;EAAqC,CAAC,GAAAF,IAAA;EAAA,OAChEE,WAAW,IAAID,KAAK,CAAC,eAAe,CAAC;AAAA;AAC7C,aAAaE,KAAA;EAAA,IAAC;IAAEF;EAA+B,CAAC,GAAAE,KAAA;EAAA,OAAKF,KAAK,CAACG,IAAI;AAAA;AAC/D;AACA;AACA;AACA;AACA;AACA,MAAMC,KAAA;EAAA,IAAC;IAAEC;EAAY,CAAC,GAAAD,KAAA;EAAA,OACdC,WAAW,IACXT,GAAG;AACX;AACA;AACA,SAAS;AAAA;AACT;AACA,MAAMU,KAAA;EAAA,IAAC;IAAED,WAAW;IAAEE,QAAQ;IAAEP;EAA+B,CAAC,GAAAM,KAAA;EAAA,OACxD,CAACD,WAAW,IACZ,CAACE,QAAQ,IACTX,GAAG;AACX;AACA,oCAAoCI,KAAK,CAAC,eAAe,CAAC;AAC1D;AACA;AACA;AACA,oCAAoCA,KAAK,CAAC,eAAe,CAAC;AAC1D;AACA,SAAS;AAAA;AACT,CAAC;AAQD,OAAO,MAAMQ,uBAAuB,GAAGb,MAAM,CAACc,GAAiC;AAC/E,MAAMC,KAAA;EAAA,IAAC;IAAEC;EAAsB,CAAC,GAAAD,KAAA;EAAA,OACxBC,qBAAqB,IACrBf,GAAG;AACX;AACA,SAAS;AAAA;AACT;AACA,kBAAkBgB,KAAA;EAAA,IAAC;IAAEC,WAAW;IAAEb;EAAoC,CAAC,GAAAY,KAAA;EAAA,OAC/DC,WAAW,IAAI,QAAQb,KAAK,CAAC,UAAU,CAAC,IAAI,OAAO,QAAQ;AAAA;AACnE;AACA,eAAec,KAAA;EAAA,IAAC;IAAEd;EAAoC,CAAC,GAAAc,KAAA;EAAA,OAAKd,KAAK,CAAC,SAAS,CAAC;AAAA;AAC5E;AACA,cAAce,KAAA;EAAA,IAAC;IAAEC;EAAoB,CAAC,GAAAD,KAAA;EAAA,OAAMC,mBAAmB,GAAG,MAAM,GAAG,MAAM;AAAA,CAAC;AAClF,aAAaC,KAAA;EAAA,IAAC;IAAED;EAAoB,CAAC,GAAAC,KAAA;EAAA,OAAMD,mBAAmB,GAAG,MAAM,GAAG,MAAM;AAAA,CAAC;AACjF,CAAC;AAED,OAAO,MAAME,yBAAyB,GAAGvB,MAAM,CAACG,GAAG;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAOD,OAAO,MAAMqB,+BAA+B,GAAGxB,MAAM,CAACG,GAAyC;AAC/F;AACA;AACA;AACA,mBAAmBsB,MAAA;EAAA,IAAC;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAAF,MAAA;EAAA,OAAMC,KAAK,IAAIC,QAAQ,GAAG,MAAM,GAAG,QAAQ;AAAA,CAAC;AACnF,CAAC;AAED,OAAO,MAAMC,sCAAsC,GAAG5B,MAAM,CAACG,GAAG;AAChE;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAM0B,0CAA0C,GAAG7B,MAAM,CAACG,GAAG;AACpE;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAM2B,2CAA2C,GAAG9B,MAAM,CAACG,GAAG;AACrE;AACA;AACA,CAAC;AAED,OAAO,MAAM4B,gCAAgC,GAAG/B,MAAM,CAACG,GAAG;AAC1D;AACA;AACA,CAAC","ignoreList":[]}
@@ -14,6 +14,7 @@ import { StyledSearchBoxItemImage } from './search-box-item/SearchBoxItem.styles
14
14
  import { StyledSearchBox, StyledSearchBoxIcon, StyledSearchBoxLeftWrapper } from './SearchBox.styles';
15
15
  const SearchBox = /*#__PURE__*/forwardRef((_ref, ref) => {
16
16
  let {
17
+ isInvalid = false,
17
18
  placeholder,
18
19
  leftIcons,
19
20
  lists,
@@ -617,6 +618,7 @@ const SearchBox = /*#__PURE__*/forwardRef((_ref, ref) => {
617
618
  }, /*#__PURE__*/React.createElement("div", {
618
619
  id: "search_box_input"
619
620
  }, /*#__PURE__*/React.createElement(Input, {
621
+ isInvalid: isInvalid,
620
622
  ref: inputRef,
621
623
  onChange: handleChange,
622
624
  onBlur: handleBlur,
@@ -626,7 +628,7 @@ const SearchBox = /*#__PURE__*/forwardRef((_ref, ref) => {
626
628
  leftElement: leftElement,
627
629
  rightElement: rightElement,
628
630
  value: value
629
- })), portal), [handleBlur, handleChange, handleFocus, leftElement, onKeyDown, placeholder, portal, rightElement, value]);
631
+ })), portal), [handleBlur, handleChange, handleFocus, isInvalid, leftElement, onKeyDown, placeholder, portal, rightElement, value]);
630
632
  });
631
633
  SearchBox.displayName = 'SearchBox';
632
634
  export default SearchBox;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBox.js","names":["getDevice","AnimatePresence","React","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","createPortal","useTheme","calculateContentHeight","searchList","Icon","Input","GroupName","SearchBoxBody","SearchBoxItem","StyledSearchBoxItemImage","StyledSearchBox","StyledSearchBoxIcon","StyledSearchBoxLeftWrapper","SearchBox","_ref","ref","placeholder","leftIcons","lists","onChange","onBlur","onSelect","onKeyDown","selectedId","container","shouldHideFilterButtons","shouldShowRoundImage","shouldShowContentOnEmptyInput","shouldAddInputToList","shouldShowToggleIcon","customFilter","matchingListsItems","setMatchingListsItems","selectedImage","setSelectedImage","value","setValue","isAnimating","setIsAnimating","height","setHeight","width","setWidth","focusedIndex","setFocusedIndex","hasMultipleGroups","setHasMultipleGroups","length","filteredChildrenArray","setFilteredChildrenArray","inputToListValue","setInputToListValue","groups","setGroups","portal","setPortal","internalCoordinates","setInternalCoordinates","x","y","newContainer","setNewContainer","boxRef","contentRef","inputRef","hasFocusRef","isAnimatingRef","theme","browser","current","el","element","closest","Element","getBoundingClientRect","filterButtons","items","forEach","_ref2","groupName","push","id","text","activeList","newLists","list","includes","newMatchingItems","_ref3","newList","searchString","undefined","filteredMatchingListItems","map","_ref4","filter","item","handleOpen","bodyHeight","handleClose","handleFilterButtonsGroupSelect","keys","handleOutsideClick","event","contains","target","document","addEventListener","window","removeEventListener","textArray","_ref5","_ref6","input","getElementById","getInputWidth","offsetWidth","ResizeObserver","observe","_ref7","selectedItem","find","_ref8","imageUrl","createElement","src","$shouldShowRoundImage","handleFocus","_ref9","_ref10","_ref11","_ref12","_ref13","toLowerCase","handleClick","rightElement","onClick","icons","color","leftElement","handleChange","filteredLists","_ref14","handleBlur","handleSelect","newItem","replace","content","_ref15","index","key","name","_ref16","handleKeyDown","e","preventDefault","children","childrenArray","Array","from","newChildren","child","startsWith","filteredChildren","dataset","isgroupname","newIndex","prevElement","tabIndex","newElement","focus","textContent","attributes","nodeValue","handleKeyPress","keyCode","clear","initial","trim","selectedGroups","coordinates","onGroupSelect","onFocus","displayName"],"sources":["../../../../src/components/search-box/SearchBox.tsx"],"sourcesContent":["import { getDevice } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n FocusEvent,\n FocusEventHandler,\n forwardRef,\n KeyboardEventHandler,\n ReactElement,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useTheme } from 'styled-components';\nimport { BrowserName } from '../../types/chayns';\nimport type { IFilterButtonItem } from '../../types/filterButtons';\nimport type { ISearchBoxItem, ISearchBoxItems } from '../../types/searchBox';\nimport { calculateContentHeight } from '../../utils/calculate';\nimport { searchList } from '../../utils/searchBox';\nimport type { ContextMenuCoordinates } from '../context-menu/ContextMenu';\nimport Icon from '../icon/Icon';\nimport Input from '../input/Input';\nimport GroupName from './group-name/GroupName';\nimport SearchBoxBody from './search-box-body/SearchBoxBody';\nimport SearchBoxItem from './search-box-item/SearchBoxItem';\nimport { StyledSearchBoxItemImage } from './search-box-item/SearchBoxItem.styles';\nimport {\n StyledSearchBox,\n StyledSearchBoxIcon,\n StyledSearchBoxLeftWrapper,\n} from './SearchBox.styles';\n\nexport type SearchBoxRef = {\n clear: VoidFunction;\n};\n\nexport type SearchBoxProps = {\n /**\n * The element where the content of the `ComboBox` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * An optional icon that is displayed inside the left side of the input.\n */\n leftIcons?: string[];\n /**\n * List of groups with items that can be searched. It is possible to give only one list; if multiple lists are provided, the 'group name' parameter becomes mandatory.\n */\n lists: ISearchBoxItems[];\n /**\n * The placeholder that should be displayed.\n */\n placeholder?: string;\n /**\n * Function to be executed when the input lost focus.\n */\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when the input is changed.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function that is executed when a letter is pressed\n */\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when an item is selected.\n */\n onSelect?: (item: ISearchBoxItem) => void;\n /**\n * Control the selected item. If you use this prop, make sure to update it when the user selects an item.\n */\n selectedId?: string;\n /**\n * If true, the value in the Input is displayed in the list.\n */\n shouldAddInputToList: boolean;\n /**\n * If true, the filter buttons are hidden.\n */\n shouldHideFilterButtons?: boolean;\n /**\n * Whether the full list of items should be displayed if the input is empty.\n */\n shouldShowContentOnEmptyInput?: boolean;\n /**\n * If true, the images of the items are displayed in a round shape.\n */\n shouldShowRoundImage?: boolean;\n /**\n * Whether the icon to open and close the list should be displayed.\n */\n shouldShowToggleIcon?: boolean;\n /**\n * An optional callback function to filter the elements to be displayed\n */\n customFilter?: (item: ISearchBoxItem) => boolean;\n};\n\nconst SearchBox: FC<SearchBoxProps> = forwardRef<SearchBoxRef, SearchBoxProps>(\n (\n {\n placeholder,\n leftIcons,\n lists,\n onChange,\n onBlur,\n onSelect,\n onKeyDown,\n selectedId,\n container,\n shouldHideFilterButtons = false,\n shouldShowRoundImage,\n shouldShowContentOnEmptyInput = true,\n shouldAddInputToList = true,\n shouldShowToggleIcon = false,\n customFilter,\n },\n ref,\n ) => {\n const [matchingListsItems, setMatchingListsItems] = useState<ISearchBoxItems[]>(lists);\n const [selectedImage, setSelectedImage] = useState<ReactElement>();\n const [value, setValue] = useState('');\n const [isAnimating, setIsAnimating] = useState(false);\n const [height, setHeight] = useState<number>(0);\n const [width, setWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [hasMultipleGroups, setHasMultipleGroups] = useState<boolean>(lists.length > 1);\n const [filteredChildrenArray, setFilteredChildrenArray] = useState<Element[]>();\n const [inputToListValue, setInputToListValue] = useState<string>('');\n const [groups, setGroups] = useState<string[]>(['all']);\n const [portal, setPortal] = useState<ReactPortal>();\n const [internalCoordinates, setInternalCoordinates] = useState<ContextMenuCoordinates>({\n x: 0,\n y: 0,\n });\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n\n const boxRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const hasFocusRef = useRef<boolean>(false);\n const isAnimatingRef = useRef<boolean>(false);\n\n const theme = useTheme();\n\n const { browser } = getDevice();\n\n useEffect(() => {\n if (boxRef.current && !container) {\n const el = boxRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner') || el.closest('body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n if (boxRef.current) {\n const { x, y } = boxRef.current.getBoundingClientRect();\n\n setInternalCoordinates({\n x,\n y,\n });\n }\n }, []);\n\n /**\n * Checks if Lists are smaller then 1\n */\n useEffect(() => {\n setHasMultipleGroups(lists.length > 1);\n }, [lists]);\n\n const filterButtons = useMemo(() => {\n const items: IFilterButtonItem[] = [];\n\n if (lists.length <= 1) {\n return items;\n }\n\n lists.forEach(({ groupName }) => {\n if (groupName) {\n items.push({\n id: groupName,\n text: groupName,\n });\n }\n });\n\n return items;\n }, [lists]);\n\n /**\n * Filters the lists by the FilterButtons\n */\n const activeList = useMemo(() => {\n let newLists: ISearchBoxItems[] = [];\n\n if (groups[0] === 'all') {\n newLists = lists;\n } else {\n lists.forEach((list) => {\n if (list.groupName && groups.includes(list.groupName)) {\n newLists.push(list);\n }\n });\n }\n\n const newMatchingItems: ISearchBoxItems[] = [];\n\n newLists.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n const filteredMatchingListItems = newMatchingItems.map(({ list, groupName }) => ({\n groupName,\n list: list.filter((item) => {\n if (typeof customFilter === 'function') {\n return customFilter(item);\n }\n return !(newMatchingItems.length === 1 && item.text === value);\n }),\n }));\n\n setMatchingListsItems(filteredMatchingListItems);\n\n return newLists;\n }, [groups, lists, customFilter, shouldAddInputToList, value]);\n\n const handleOpen = useCallback(() => {\n if (boxRef.current) {\n const { x, y, height: bodyHeight } = boxRef.current.getBoundingClientRect();\n\n setInternalCoordinates({\n x,\n y: y + bodyHeight,\n });\n\n setIsAnimating(true);\n }\n }, []);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\n\n const handleFilterButtonsGroupSelect = (keys: string[]) => {\n setGroups(keys.length === 0 ? ['all'] : keys);\n };\n\n /**\n * This function closes the list of items\n */\n const handleOutsideClick = useCallback(\n (event: MouseEvent) => {\n if (\n boxRef.current &&\n !boxRef.current.contains(event.target as Node) &&\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n handleClose();\n }\n },\n [handleClose],\n );\n\n /**\n * This hook listens for clicks\n */\n useEffect(() => {\n document.addEventListener('click', handleOutsideClick);\n window.addEventListener('blur', () => handleClose());\n\n return () => {\n document.removeEventListener('click', handleOutsideClick);\n window.addEventListener('blur', () => handleClose());\n };\n }, [handleOutsideClick, boxRef, handleClose]);\n\n /**\n * This hook calculates the height\n */\n useEffect(() => {\n const textArray: string[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n list.forEach(({ text }) => textArray.push(text));\n if (!groupName) {\n return;\n }\n textArray.push(groupName);\n });\n\n if (shouldAddInputToList && inputToListValue !== '') {\n textArray.push(inputToListValue);\n }\n\n setHeight(calculateContentHeight(textArray));\n }, [inputToListValue, activeList, placeholder, shouldAddInputToList]);\n\n /**\n * This hook calculates the width\n */\n useEffect(() => {\n const input = document.getElementById('search_box_input');\n\n const getInputWidth = () => {\n if (input) {\n setWidth(input.offsetWidth);\n }\n };\n\n if (input) {\n new ResizeObserver(getInputWidth).observe(input);\n }\n }, []);\n\n useEffect(() => {\n if (selectedId) {\n activeList.forEach(({ list }) => {\n const selectedItem = list.find(({ id }) => id === selectedId);\n if (selectedItem) {\n setValue(selectedItem.text);\n\n if (selectedItem.imageUrl) {\n setSelectedImage(\n <StyledSearchBoxItemImage\n src={selectedItem.imageUrl}\n $shouldShowRoundImage={shouldShowRoundImage}\n />,\n );\n }\n }\n });\n }\n }, [activeList, selectedId, shouldShowRoundImage]);\n\n /**\n * This hook resets the value if the selectedId changes to undefined. This is an own useEffect because the value\n * should not be reset if the list changes and the selectedId is still undefined.\n */\n useEffect(() => {\n if (!selectedId) {\n setValue('');\n }\n }, [selectedId]);\n\n useEffect(() => {\n isAnimatingRef.current = isAnimating;\n }, [isAnimating]);\n\n useEffect(() => {\n if (matchingListsItems.length !== 0 && !isAnimatingRef.current && hasFocusRef.current) {\n handleOpen();\n }\n }, [handleOpen, matchingListsItems.length]);\n\n /**\n * This function sets the items on focus if shouldShowContentOnEmptyInput\n */\n const handleFocus = useCallback(() => {\n hasFocusRef.current = true;\n\n if (shouldShowContentOnEmptyInput) {\n const newMatchingItems: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n const filteredMatchingListItems = newMatchingItems.map(({ list, groupName }) => ({\n groupName,\n list: list.filter((item) => {\n if (typeof customFilter === 'function') {\n return customFilter(item);\n }\n return !(newMatchingItems.length === 1 && item.text === value);\n }),\n }));\n\n setMatchingListsItems(filteredMatchingListItems);\n\n if (filteredMatchingListItems.length !== 0) {\n handleOpen();\n }\n }\n }, [\n activeList,\n handleOpen,\n customFilter,\n shouldAddInputToList,\n shouldShowContentOnEmptyInput,\n value,\n ]);\n\n /**\n * This function filters the lists by input\n */\n\n useEffect(() => {\n const newMatchingItems: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n if (shouldAddInputToList && inputToListValue !== '') {\n newMatchingItems.forEach(({ list }) => {\n list.forEach(({ text }) => {\n if (text.toLowerCase() === inputToListValue.toLowerCase()) {\n setInputToListValue('');\n }\n });\n });\n }\n }, [\n inputToListValue,\n activeList,\n shouldAddInputToList,\n shouldShowContentOnEmptyInput,\n value,\n ]);\n\n const handleClick = useCallback(() => {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }, [handleClose, handleOpen, isAnimating]);\n\n const rightElement = useMemo(() => {\n if (!shouldShowToggleIcon) {\n return undefined;\n }\n\n return (\n <StyledSearchBoxIcon onClick={handleClick}>\n <Icon icons={['fa fa-chevron-down']} color={theme['006'] as string} />\n </StyledSearchBoxIcon>\n );\n }, [handleClick, shouldShowToggleIcon, theme]);\n\n const leftElement = useMemo(\n () => (\n <StyledSearchBoxLeftWrapper>\n {leftIcons && <Icon icons={leftIcons} />}\n {selectedImage && selectedImage}\n </StyledSearchBoxLeftWrapper>\n ),\n [leftIcons, selectedImage],\n );\n\n /**\n * This function handles changes of the input\n */\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const filteredLists: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: event.target.value });\n\n if (newList.length > 0) {\n filteredLists.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (filteredLists.length === 0 && shouldAddInputToList) {\n filteredLists.push({\n groupName: undefined,\n list: [],\n });\n }\n\n setSelectedImage(undefined);\n\n if (!shouldShowContentOnEmptyInput && !event.target.value) {\n setMatchingListsItems([]);\n } else {\n setMatchingListsItems(filteredLists);\n }\n\n if (filteredLists.length !== 0) {\n handleOpen();\n }\n\n setValue(event.target.value);\n setInputToListValue(event.target.value);\n\n if (typeof onChange === 'function') {\n onChange(event);\n }\n },\n [activeList, handleOpen, onChange, shouldAddInputToList, shouldShowContentOnEmptyInput],\n );\n\n /**\n * This function handles the blur event of the input\n */\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n hasFocusRef.current = false;\n\n if (typeof onBlur === 'function') {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n /**\n * This function handles the item selection\n */\n const handleSelect = useCallback(\n (item: ISearchBoxItem) => {\n const newItem = {\n ...item,\n text: item.text.replace('<b>', '').replace('</b>', '').replace('</b', ''),\n };\n\n setValue(newItem.text);\n handleClose();\n\n setSelectedImage(\n newItem.imageUrl ? (\n <StyledSearchBoxItemImage\n src={newItem.imageUrl}\n $shouldShowRoundImage={shouldShowRoundImage}\n />\n ) : undefined,\n );\n\n setMatchingListsItems([]);\n\n if (typeof onSelect === 'function') {\n onSelect(newItem);\n }\n },\n [handleClose, onSelect, shouldShowRoundImage],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n matchingListsItems.forEach(({ groupName, list }, index) => {\n if (hasMultipleGroups) {\n if (list.length <= 0) {\n return;\n }\n\n if (index !== 0) {\n items.push(<GroupName key={groupName} name={groupName ?? ''} />);\n }\n }\n\n list.forEach(({ id, text, imageUrl }) => {\n items.push(\n <SearchBoxItem\n key={`${id}_${groupName ?? ''}`}\n id={id}\n text={text}\n imageUrl={imageUrl}\n shouldShowRoundImage={shouldShowRoundImage}\n onSelect={handleSelect}\n groupName={groupName}\n />,\n );\n });\n });\n\n if (shouldAddInputToList && inputToListValue !== '') {\n items.push(\n <SearchBoxItem\n id=\"input-value\"\n onSelect={handleSelect}\n text={`<b>${inputToListValue}</b`}\n />,\n );\n }\n\n return items;\n }, [\n matchingListsItems,\n shouldAddInputToList,\n inputToListValue,\n hasMultipleGroups,\n shouldShowRoundImage,\n handleSelect,\n ]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating || matchingListsItems.length === 0) {\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const children = contentRef.current?.children;\n\n if (!children) {\n return;\n }\n\n const childrenArray = Array.from(children);\n\n const newChildren = childrenArray.find((child) =>\n child.id.startsWith('searchbox-content__'),\n )?.children;\n\n if (newChildren && newChildren.length > 0) {\n const filteredChildren = Array.from(newChildren).filter(\n (child) => (child as HTMLElement).dataset.isgroupname !== 'true',\n );\n setFilteredChildrenArray(filteredChildren);\n\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (e.key === 'ArrowUp' ? -1 : 1) +\n filteredChildren.length) %\n filteredChildren.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = filteredChildren[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const newElement = filteredChildren[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n if (filteredChildrenArray) {\n const element = filteredChildrenArray[focusedIndex];\n\n if (!element) {\n return;\n }\n\n const { id, textContent } = element;\n\n let imageUrl: string | undefined;\n\n // Just Ignore, it works\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (element.children[0]?.attributes.src) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n imageUrl = element.children[0]?.attributes.src.nodeValue as string;\n }\n\n handleSelect({\n id: id.replace('search-box-item__', ''),\n text: textContent ?? '',\n imageUrl,\n });\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [\n filteredChildrenArray,\n focusedIndex,\n handleSelect,\n isAnimating,\n matchingListsItems.length,\n ]);\n\n const handleKeyPress = useCallback((event: KeyboardEvent) => {\n if (event.keyCode === 27) {\n setMatchingListsItems([]);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n clear: () => setValue(''),\n }),\n [],\n );\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyPress);\n\n return () => {\n document.addEventListener('keydown', handleKeyPress);\n };\n }, [handleKeyPress]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isAnimating &&\n matchingListsItems.length !== 0 &&\n (value.trim() !== '' || shouldShowContentOnEmptyInput) && (\n <SearchBoxBody\n filterButtons={filterButtons}\n selectedGroups={groups}\n width={width}\n coordinates={internalCoordinates}\n browser={browser?.name as BrowserName}\n height={height}\n ref={contentRef}\n onGroupSelect={handleFilterButtonsGroupSelect}\n shouldHideFilterButtons={shouldHideFilterButtons}\n >\n {content}\n </SearchBoxBody>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n browser?.name,\n newContainer,\n content,\n filterButtons,\n groups,\n height,\n internalCoordinates,\n isAnimating,\n width,\n shouldHideFilterButtons,\n matchingListsItems.length,\n value,\n shouldShowContentOnEmptyInput,\n ]);\n\n return useMemo(\n () => (\n <StyledSearchBox ref={boxRef}>\n <div id=\"search_box_input\">\n <Input\n ref={inputRef}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n leftElement={leftElement}\n rightElement={rightElement}\n value={value}\n />\n </div>\n {portal}\n </StyledSearchBox>\n ),\n [\n handleBlur,\n handleChange,\n handleFocus,\n leftElement,\n onKeyDown,\n placeholder,\n portal,\n rightElement,\n value,\n ],\n );\n },\n);\n\nSearchBox.displayName = 'SearchBox';\n\nexport default SearchBox;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SearchBox.js","names":["getDevice","AnimatePresence","React","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","createPortal","useTheme","calculateContentHeight","searchList","Icon","Input","GroupName","SearchBoxBody","SearchBoxItem","StyledSearchBoxItemImage","StyledSearchBox","StyledSearchBoxIcon","StyledSearchBoxLeftWrapper","SearchBox","_ref","ref","isInvalid","placeholder","leftIcons","lists","onChange","onBlur","onSelect","onKeyDown","selectedId","container","shouldHideFilterButtons","shouldShowRoundImage","shouldShowContentOnEmptyInput","shouldAddInputToList","shouldShowToggleIcon","customFilter","matchingListsItems","setMatchingListsItems","selectedImage","setSelectedImage","value","setValue","isAnimating","setIsAnimating","height","setHeight","width","setWidth","focusedIndex","setFocusedIndex","hasMultipleGroups","setHasMultipleGroups","length","filteredChildrenArray","setFilteredChildrenArray","inputToListValue","setInputToListValue","groups","setGroups","portal","setPortal","internalCoordinates","setInternalCoordinates","x","y","newContainer","setNewContainer","boxRef","contentRef","inputRef","hasFocusRef","isAnimatingRef","theme","browser","current","el","element","closest","Element","getBoundingClientRect","filterButtons","items","forEach","_ref2","groupName","push","id","text","activeList","newLists","list","includes","newMatchingItems","_ref3","newList","searchString","undefined","filteredMatchingListItems","map","_ref4","filter","item","handleOpen","bodyHeight","handleClose","handleFilterButtonsGroupSelect","keys","handleOutsideClick","event","contains","target","document","addEventListener","window","removeEventListener","textArray","_ref5","_ref6","input","getElementById","getInputWidth","offsetWidth","ResizeObserver","observe","_ref7","selectedItem","find","_ref8","imageUrl","createElement","src","$shouldShowRoundImage","handleFocus","_ref9","_ref10","_ref11","_ref12","_ref13","toLowerCase","handleClick","rightElement","onClick","icons","color","leftElement","handleChange","filteredLists","_ref14","handleBlur","handleSelect","newItem","replace","content","_ref15","index","key","name","_ref16","handleKeyDown","e","preventDefault","children","childrenArray","Array","from","newChildren","child","startsWith","filteredChildren","dataset","isgroupname","newIndex","prevElement","tabIndex","newElement","focus","textContent","attributes","nodeValue","handleKeyPress","keyCode","clear","initial","trim","selectedGroups","coordinates","onGroupSelect","onFocus","displayName"],"sources":["../../../../src/components/search-box/SearchBox.tsx"],"sourcesContent":["import { getDevice } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n FocusEvent,\n FocusEventHandler,\n forwardRef,\n KeyboardEventHandler,\n ReactElement,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useTheme } from 'styled-components';\nimport { BrowserName } from '../../types/chayns';\nimport type { IFilterButtonItem } from '../../types/filterButtons';\nimport type { ISearchBoxItem, ISearchBoxItems } from '../../types/searchBox';\nimport { calculateContentHeight } from '../../utils/calculate';\nimport { searchList } from '../../utils/searchBox';\nimport type { ContextMenuCoordinates } from '../context-menu/ContextMenu';\nimport Icon from '../icon/Icon';\nimport Input from '../input/Input';\nimport GroupName from './group-name/GroupName';\nimport SearchBoxBody from './search-box-body/SearchBoxBody';\nimport SearchBoxItem from './search-box-item/SearchBoxItem';\nimport { StyledSearchBoxItemImage } from './search-box-item/SearchBoxItem.styles';\nimport {\n StyledSearchBox,\n StyledSearchBoxIcon,\n StyledSearchBoxLeftWrapper,\n} from './SearchBox.styles';\n\nexport type SearchBoxRef = {\n clear: VoidFunction;\n};\n\nexport type SearchBoxProps = {\n /**\n * The element where the content of the `ComboBox` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * If true, the input field is marked as invalid\n */\n isInvalid?: boolean;\n /**\n * An optional icon that is displayed inside the left side of the input.\n */\n leftIcons?: string[];\n /**\n * List of groups with items that can be searched. It is possible to give only one list; if multiple lists are provided, the 'group name' parameter becomes mandatory.\n */\n lists: ISearchBoxItems[];\n /**\n * The placeholder that should be displayed.\n */\n placeholder?: string;\n /**\n * Function to be executed when the input lost focus.\n */\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when the input is changed.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function that is executed when a letter is pressed\n */\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when an item is selected.\n */\n onSelect?: (item: ISearchBoxItem) => void;\n /**\n * Control the selected item. If you use this prop, make sure to update it when the user selects an item.\n */\n selectedId?: string;\n /**\n * If true, the value in the Input is displayed in the list.\n */\n shouldAddInputToList: boolean;\n /**\n * If true, the filter buttons are hidden.\n */\n shouldHideFilterButtons?: boolean;\n /**\n * Whether the full list of items should be displayed if the input is empty.\n */\n shouldShowContentOnEmptyInput?: boolean;\n /**\n * If true, the images of the items are displayed in a round shape.\n */\n shouldShowRoundImage?: boolean;\n /**\n * Whether the icon to open and close the list should be displayed.\n */\n shouldShowToggleIcon?: boolean;\n /**\n * An optional callback function to filter the elements to be displayed\n */\n customFilter?: (item: ISearchBoxItem) => boolean;\n};\n\nconst SearchBox: FC<SearchBoxProps> = forwardRef<SearchBoxRef, SearchBoxProps>(\n (\n {\n isInvalid = false,\n placeholder,\n leftIcons,\n lists,\n onChange,\n onBlur,\n onSelect,\n onKeyDown,\n selectedId,\n container,\n shouldHideFilterButtons = false,\n shouldShowRoundImage,\n shouldShowContentOnEmptyInput = true,\n shouldAddInputToList = true,\n shouldShowToggleIcon = false,\n customFilter,\n },\n ref,\n ) => {\n const [matchingListsItems, setMatchingListsItems] = useState<ISearchBoxItems[]>(lists);\n const [selectedImage, setSelectedImage] = useState<ReactElement>();\n const [value, setValue] = useState('');\n const [isAnimating, setIsAnimating] = useState(false);\n const [height, setHeight] = useState<number>(0);\n const [width, setWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [hasMultipleGroups, setHasMultipleGroups] = useState<boolean>(lists.length > 1);\n const [filteredChildrenArray, setFilteredChildrenArray] = useState<Element[]>();\n const [inputToListValue, setInputToListValue] = useState<string>('');\n const [groups, setGroups] = useState<string[]>(['all']);\n const [portal, setPortal] = useState<ReactPortal>();\n const [internalCoordinates, setInternalCoordinates] = useState<ContextMenuCoordinates>({\n x: 0,\n y: 0,\n });\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n\n const boxRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const hasFocusRef = useRef<boolean>(false);\n const isAnimatingRef = useRef<boolean>(false);\n\n const theme = useTheme();\n\n const { browser } = getDevice();\n\n useEffect(() => {\n if (boxRef.current && !container) {\n const el = boxRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner') || el.closest('body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n if (boxRef.current) {\n const { x, y } = boxRef.current.getBoundingClientRect();\n\n setInternalCoordinates({\n x,\n y,\n });\n }\n }, []);\n\n /**\n * Checks if Lists are smaller then 1\n */\n useEffect(() => {\n setHasMultipleGroups(lists.length > 1);\n }, [lists]);\n\n const filterButtons = useMemo(() => {\n const items: IFilterButtonItem[] = [];\n\n if (lists.length <= 1) {\n return items;\n }\n\n lists.forEach(({ groupName }) => {\n if (groupName) {\n items.push({\n id: groupName,\n text: groupName,\n });\n }\n });\n\n return items;\n }, [lists]);\n\n /**\n * Filters the lists by the FilterButtons\n */\n const activeList = useMemo(() => {\n let newLists: ISearchBoxItems[] = [];\n\n if (groups[0] === 'all') {\n newLists = lists;\n } else {\n lists.forEach((list) => {\n if (list.groupName && groups.includes(list.groupName)) {\n newLists.push(list);\n }\n });\n }\n\n const newMatchingItems: ISearchBoxItems[] = [];\n\n newLists.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n const filteredMatchingListItems = newMatchingItems.map(({ list, groupName }) => ({\n groupName,\n list: list.filter((item) => {\n if (typeof customFilter === 'function') {\n return customFilter(item);\n }\n return !(newMatchingItems.length === 1 && item.text === value);\n }),\n }));\n\n setMatchingListsItems(filteredMatchingListItems);\n\n return newLists;\n }, [groups, lists, customFilter, shouldAddInputToList, value]);\n\n const handleOpen = useCallback(() => {\n if (boxRef.current) {\n const { x, y, height: bodyHeight } = boxRef.current.getBoundingClientRect();\n\n setInternalCoordinates({\n x,\n y: y + bodyHeight,\n });\n\n setIsAnimating(true);\n }\n }, []);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\n\n const handleFilterButtonsGroupSelect = (keys: string[]) => {\n setGroups(keys.length === 0 ? ['all'] : keys);\n };\n\n /**\n * This function closes the list of items\n */\n const handleOutsideClick = useCallback(\n (event: MouseEvent) => {\n if (\n boxRef.current &&\n !boxRef.current.contains(event.target as Node) &&\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n handleClose();\n }\n },\n [handleClose],\n );\n\n /**\n * This hook listens for clicks\n */\n useEffect(() => {\n document.addEventListener('click', handleOutsideClick);\n window.addEventListener('blur', () => handleClose());\n\n return () => {\n document.removeEventListener('click', handleOutsideClick);\n window.addEventListener('blur', () => handleClose());\n };\n }, [handleOutsideClick, boxRef, handleClose]);\n\n /**\n * This hook calculates the height\n */\n useEffect(() => {\n const textArray: string[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n list.forEach(({ text }) => textArray.push(text));\n if (!groupName) {\n return;\n }\n textArray.push(groupName);\n });\n\n if (shouldAddInputToList && inputToListValue !== '') {\n textArray.push(inputToListValue);\n }\n\n setHeight(calculateContentHeight(textArray));\n }, [inputToListValue, activeList, placeholder, shouldAddInputToList]);\n\n /**\n * This hook calculates the width\n */\n useEffect(() => {\n const input = document.getElementById('search_box_input');\n\n const getInputWidth = () => {\n if (input) {\n setWidth(input.offsetWidth);\n }\n };\n\n if (input) {\n new ResizeObserver(getInputWidth).observe(input);\n }\n }, []);\n\n useEffect(() => {\n if (selectedId) {\n activeList.forEach(({ list }) => {\n const selectedItem = list.find(({ id }) => id === selectedId);\n if (selectedItem) {\n setValue(selectedItem.text);\n\n if (selectedItem.imageUrl) {\n setSelectedImage(\n <StyledSearchBoxItemImage\n src={selectedItem.imageUrl}\n $shouldShowRoundImage={shouldShowRoundImage}\n />,\n );\n }\n }\n });\n }\n }, [activeList, selectedId, shouldShowRoundImage]);\n\n /**\n * This hook resets the value if the selectedId changes to undefined. This is an own useEffect because the value\n * should not be reset if the list changes and the selectedId is still undefined.\n */\n useEffect(() => {\n if (!selectedId) {\n setValue('');\n }\n }, [selectedId]);\n\n useEffect(() => {\n isAnimatingRef.current = isAnimating;\n }, [isAnimating]);\n\n useEffect(() => {\n if (matchingListsItems.length !== 0 && !isAnimatingRef.current && hasFocusRef.current) {\n handleOpen();\n }\n }, [handleOpen, matchingListsItems.length]);\n\n /**\n * This function sets the items on focus if shouldShowContentOnEmptyInput\n */\n const handleFocus = useCallback(() => {\n hasFocusRef.current = true;\n\n if (shouldShowContentOnEmptyInput) {\n const newMatchingItems: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n const filteredMatchingListItems = newMatchingItems.map(({ list, groupName }) => ({\n groupName,\n list: list.filter((item) => {\n if (typeof customFilter === 'function') {\n return customFilter(item);\n }\n return !(newMatchingItems.length === 1 && item.text === value);\n }),\n }));\n\n setMatchingListsItems(filteredMatchingListItems);\n\n if (filteredMatchingListItems.length !== 0) {\n handleOpen();\n }\n }\n }, [\n activeList,\n handleOpen,\n customFilter,\n shouldAddInputToList,\n shouldShowContentOnEmptyInput,\n value,\n ]);\n\n /**\n * This function filters the lists by input\n */\n\n useEffect(() => {\n const newMatchingItems: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: value });\n\n if (newList.length > 0) {\n newMatchingItems.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (newMatchingItems.length === 0 && shouldAddInputToList) {\n newMatchingItems.push({\n groupName: undefined,\n list: [],\n });\n }\n\n if (shouldAddInputToList && inputToListValue !== '') {\n newMatchingItems.forEach(({ list }) => {\n list.forEach(({ text }) => {\n if (text.toLowerCase() === inputToListValue.toLowerCase()) {\n setInputToListValue('');\n }\n });\n });\n }\n }, [\n inputToListValue,\n activeList,\n shouldAddInputToList,\n shouldShowContentOnEmptyInput,\n value,\n ]);\n\n const handleClick = useCallback(() => {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }, [handleClose, handleOpen, isAnimating]);\n\n const rightElement = useMemo(() => {\n if (!shouldShowToggleIcon) {\n return undefined;\n }\n\n return (\n <StyledSearchBoxIcon onClick={handleClick}>\n <Icon icons={['fa fa-chevron-down']} color={theme['006'] as string} />\n </StyledSearchBoxIcon>\n );\n }, [handleClick, shouldShowToggleIcon, theme]);\n\n const leftElement = useMemo(\n () => (\n <StyledSearchBoxLeftWrapper>\n {leftIcons && <Icon icons={leftIcons} />}\n {selectedImage && selectedImage}\n </StyledSearchBoxLeftWrapper>\n ),\n [leftIcons, selectedImage],\n );\n\n /**\n * This function handles changes of the input\n */\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const filteredLists: ISearchBoxItems[] = [];\n\n activeList.forEach(({ list, groupName }) => {\n const newList = searchList({ items: list, searchString: event.target.value });\n\n if (newList.length > 0) {\n filteredLists.push({\n groupName,\n list: newList,\n });\n }\n });\n\n if (filteredLists.length === 0 && shouldAddInputToList) {\n filteredLists.push({\n groupName: undefined,\n list: [],\n });\n }\n\n setSelectedImage(undefined);\n\n if (!shouldShowContentOnEmptyInput && !event.target.value) {\n setMatchingListsItems([]);\n } else {\n setMatchingListsItems(filteredLists);\n }\n\n if (filteredLists.length !== 0) {\n handleOpen();\n }\n\n setValue(event.target.value);\n setInputToListValue(event.target.value);\n\n if (typeof onChange === 'function') {\n onChange(event);\n }\n },\n [activeList, handleOpen, onChange, shouldAddInputToList, shouldShowContentOnEmptyInput],\n );\n\n /**\n * This function handles the blur event of the input\n */\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n hasFocusRef.current = false;\n\n if (typeof onBlur === 'function') {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n /**\n * This function handles the item selection\n */\n const handleSelect = useCallback(\n (item: ISearchBoxItem) => {\n const newItem = {\n ...item,\n text: item.text.replace('<b>', '').replace('</b>', '').replace('</b', ''),\n };\n\n setValue(newItem.text);\n handleClose();\n\n setSelectedImage(\n newItem.imageUrl ? (\n <StyledSearchBoxItemImage\n src={newItem.imageUrl}\n $shouldShowRoundImage={shouldShowRoundImage}\n />\n ) : undefined,\n );\n\n setMatchingListsItems([]);\n\n if (typeof onSelect === 'function') {\n onSelect(newItem);\n }\n },\n [handleClose, onSelect, shouldShowRoundImage],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n matchingListsItems.forEach(({ groupName, list }, index) => {\n if (hasMultipleGroups) {\n if (list.length <= 0) {\n return;\n }\n\n if (index !== 0) {\n items.push(<GroupName key={groupName} name={groupName ?? ''} />);\n }\n }\n\n list.forEach(({ id, text, imageUrl }) => {\n items.push(\n <SearchBoxItem\n key={`${id}_${groupName ?? ''}`}\n id={id}\n text={text}\n imageUrl={imageUrl}\n shouldShowRoundImage={shouldShowRoundImage}\n onSelect={handleSelect}\n groupName={groupName}\n />,\n );\n });\n });\n\n if (shouldAddInputToList && inputToListValue !== '') {\n items.push(\n <SearchBoxItem\n id=\"input-value\"\n onSelect={handleSelect}\n text={`<b>${inputToListValue}</b`}\n />,\n );\n }\n\n return items;\n }, [\n matchingListsItems,\n shouldAddInputToList,\n inputToListValue,\n hasMultipleGroups,\n shouldShowRoundImage,\n handleSelect,\n ]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating || matchingListsItems.length === 0) {\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const children = contentRef.current?.children;\n\n if (!children) {\n return;\n }\n\n const childrenArray = Array.from(children);\n\n const newChildren = childrenArray.find((child) =>\n child.id.startsWith('searchbox-content__'),\n )?.children;\n\n if (newChildren && newChildren.length > 0) {\n const filteredChildren = Array.from(newChildren).filter(\n (child) => (child as HTMLElement).dataset.isgroupname !== 'true',\n );\n setFilteredChildrenArray(filteredChildren);\n\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (e.key === 'ArrowUp' ? -1 : 1) +\n filteredChildren.length) %\n filteredChildren.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = filteredChildren[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const newElement = filteredChildren[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n if (filteredChildrenArray) {\n const element = filteredChildrenArray[focusedIndex];\n\n if (!element) {\n return;\n }\n\n const { id, textContent } = element;\n\n let imageUrl: string | undefined;\n\n // Just Ignore, it works\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (element.children[0]?.attributes.src) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n imageUrl = element.children[0]?.attributes.src.nodeValue as string;\n }\n\n handleSelect({\n id: id.replace('search-box-item__', ''),\n text: textContent ?? '',\n imageUrl,\n });\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [\n filteredChildrenArray,\n focusedIndex,\n handleSelect,\n isAnimating,\n matchingListsItems.length,\n ]);\n\n const handleKeyPress = useCallback((event: KeyboardEvent) => {\n if (event.keyCode === 27) {\n setMatchingListsItems([]);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n clear: () => setValue(''),\n }),\n [],\n );\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyPress);\n\n return () => {\n document.addEventListener('keydown', handleKeyPress);\n };\n }, [handleKeyPress]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isAnimating &&\n matchingListsItems.length !== 0 &&\n (value.trim() !== '' || shouldShowContentOnEmptyInput) && (\n <SearchBoxBody\n filterButtons={filterButtons}\n selectedGroups={groups}\n width={width}\n coordinates={internalCoordinates}\n browser={browser?.name as BrowserName}\n height={height}\n ref={contentRef}\n onGroupSelect={handleFilterButtonsGroupSelect}\n shouldHideFilterButtons={shouldHideFilterButtons}\n >\n {content}\n </SearchBoxBody>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n browser?.name,\n newContainer,\n content,\n filterButtons,\n groups,\n height,\n internalCoordinates,\n isAnimating,\n width,\n shouldHideFilterButtons,\n matchingListsItems.length,\n value,\n shouldShowContentOnEmptyInput,\n ]);\n\n return useMemo(\n () => (\n <StyledSearchBox ref={boxRef}>\n <div id=\"search_box_input\">\n <Input\n isInvalid={isInvalid}\n ref={inputRef}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n leftElement={leftElement}\n rightElement={rightElement}\n value={value}\n />\n </div>\n {portal}\n </StyledSearchBox>\n ),\n [\n handleBlur,\n handleChange,\n handleFocus,\n isInvalid,\n leftElement,\n onKeyDown,\n placeholder,\n portal,\n rightElement,\n value,\n ],\n );\n },\n);\n\nSearchBox.displayName = 'SearchBox';\n\nexport default SearchBox;\n"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,10 @@ export type SearchBoxProps = {
8
8
  * The element where the content of the `ComboBox` should be rendered via React Portal.
9
9
  */
10
10
  container?: Element;
11
+ /**
12
+ * If true, the input field is marked as invalid
13
+ */
14
+ isInvalid?: boolean;
11
15
  /**
12
16
  * An optional icon that is displayed inside the left side of the input.
13
17
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/core",
3
- "version": "5.0.0-beta.1021",
3
+ "version": "5.0.0-beta.1024",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -52,8 +52,8 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@babel/cli": "^7.26.4",
55
- "@babel/core": "^7.26.0",
56
- "@babel/preset-env": "^7.26.0",
55
+ "@babel/core": "^7.26.8",
56
+ "@babel/preset-env": "^7.26.8",
57
57
  "@babel/preset-react": "^7.26.3",
58
58
  "@babel/preset-typescript": "^7.26.0",
59
59
  "@types/react": "^18.3.18",
@@ -67,12 +67,12 @@
67
67
  "lerna": "^8.1.9",
68
68
  "react": "^18.3.1",
69
69
  "react-dom": "^18.3.1",
70
- "styled-components": "^6.1.14",
70
+ "styled-components": "^6.1.15",
71
71
  "typescript": "^5.7.3"
72
72
  },
73
73
  "dependencies": {
74
74
  "@chayns/colors": "^2.0.0",
75
- "@chayns/uac-service": "~0.0.53",
75
+ "@chayns/uac-service": "~0.0.55",
76
76
  "@react-hook/resize-observer": "^2.0.2",
77
77
  "clsx": "^2.1.1",
78
78
  "react-helmet": "^6.1.0",
@@ -88,5 +88,5 @@
88
88
  "publishConfig": {
89
89
  "access": "public"
90
90
  },
91
- "gitHead": "fa5aa6a6238fe240d2650e48ffce208c50863f53"
91
+ "gitHead": "ae58d444dd6e8046cfd9729f9df9842db4d51cd0"
92
92
  }