@chayns-components/core 5.0.0-beta.1078 → 5.0.0-beta.1080

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.
@@ -70,7 +70,7 @@ const AccordionHead = ({
70
70
  setHeadHeight((0, _accordion.getAccordionHeadHeight)({
71
71
  isWrapped,
72
72
  title,
73
- width: (((_titleWrapperRef$curr = titleWrapperRef.current) === null || _titleWrapperRef$curr === void 0 ? void 0 : _titleWrapperRef$curr.clientWidth) ?? 0) - 10,
73
+ width: (((_titleWrapperRef$curr = titleWrapperRef.current) === null || _titleWrapperRef$curr === void 0 ? void 0 : _titleWrapperRef$curr.clientWidth) ?? 0) + 10,
74
74
  hasSearch: typeof onSearchChange === 'function'
75
75
  }));
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHead.js","names":["_react","require","_react2","_interopRequireWildcard","_styledComponents","_useElementSize","_accordion","_AreaContextProvider","_Icon","_interopRequireDefault","_Input","_SearchInput","_AccordionHead","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","AccordionHead","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","titleInputProps","onTitleInputChange","titleColor","headHeight","setHeadHeight","useState","closed","open","isSearchActive","setIsSearchActive","theme","useTheme","titleElementWrapperRef","useRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","useEffect","handleOnSearchChance","event","target","value","titleElementChildrenSize","useElementSize","shouldUseChildElement","shouldPreventRightElementClick","useMemo","getElementClickEvent","_titleWrapperRef$curr","getAccordionHeadHeight","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","StyledAccordionIcon","className","$icon","accordionHeadHeight","height","StyledMotionAccordionHead","animate","initial","key","StyledMotionIconWrapper","rotate","undefined","StyledMotionContentWrapper","opacity","ref","$isWrapped","AreaContext","Provider","shouldChangeColor","onChange","LayoutGroup","StyledMotionTitleWrapper","AnimatePresence","StyledMotionTitle","scale","exit","$isOpen","$color","$hasSearch","transition","duration","StyledMotionTitleElementWrapper","layout","StyledRightWrapper","$isSearchActive","StyledMotionSearchWrapper","onActiveChange","isActive","placeholder","size","InputSize","Small","StyledMotionRightElementWrapper","displayName","_default","exports"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/useElementSize';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { InputSize, type InputProps } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\nexport type AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme();\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) - 10,\n hasSearch: typeof onSearchChange === 'function',\n }),\n );\n }\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n theme.accordionIcon !== 110 &&\n theme.accordionIcon !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? (theme.iconStyle as string) : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n key={`accordionHead--${uuid}`}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n key={`accordionHeadIcon--${uuid}`}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n <Input {...titleInputProps} value={title} onChange={onTitleInputChange} />\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence\n initial={false}\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\n <StyledMotionTitle\n animate={{ scale: 1 }}\n initial={{ scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }}\n exit={{ opacity: 0 }}\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\n transition={{\n opacity: {\n duration: 0,\n },\n }}\n key={\n isOpen && !isWrapped\n ? `accordionHeadTitleBig--${uuid}`\n : `accordionHeadTitle--${uuid}`\n }\n >\n {title}\n </StyledMotionTitle>\n </AnimatePresence>\n </StyledMotionTitleWrapper>\n {titleElement && (\n <StyledMotionTitleElementWrapper\n layout\n key={`accordionTitleElement--${uuid}`}\n ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AccordionHead.js","names":["_react","require","_react2","_interopRequireWildcard","_styledComponents","_useElementSize","_accordion","_AreaContextProvider","_Icon","_interopRequireDefault","_Input","_SearchInput","_AccordionHead","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","AccordionHead","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","titleInputProps","onTitleInputChange","titleColor","headHeight","setHeadHeight","useState","closed","open","isSearchActive","setIsSearchActive","theme","useTheme","titleElementWrapperRef","useRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","useEffect","handleOnSearchChance","event","target","value","titleElementChildrenSize","useElementSize","shouldUseChildElement","shouldPreventRightElementClick","useMemo","getElementClickEvent","_titleWrapperRef$curr","getAccordionHeadHeight","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","StyledAccordionIcon","className","$icon","accordionHeadHeight","height","StyledMotionAccordionHead","animate","initial","key","StyledMotionIconWrapper","rotate","undefined","StyledMotionContentWrapper","opacity","ref","$isWrapped","AreaContext","Provider","shouldChangeColor","onChange","LayoutGroup","StyledMotionTitleWrapper","AnimatePresence","StyledMotionTitle","scale","exit","$isOpen","$color","$hasSearch","transition","duration","StyledMotionTitleElementWrapper","layout","StyledRightWrapper","$isSearchActive","StyledMotionSearchWrapper","onActiveChange","isActive","placeholder","size","InputSize","Small","StyledMotionRightElementWrapper","displayName","_default","exports"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/useElementSize';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { InputSize, type InputProps } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\nexport type AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme();\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) + 10,\n hasSearch: typeof onSearchChange === 'function',\n }),\n );\n }\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n theme.accordionIcon !== 110 &&\n theme.accordionIcon !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? (theme.iconStyle as string) : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n key={`accordionHead--${uuid}`}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n key={`accordionHeadIcon--${uuid}`}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n <Input {...titleInputProps} value={title} onChange={onTitleInputChange} />\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence\n initial={false}\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\n <StyledMotionTitle\n animate={{ scale: 1 }}\n initial={{ scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }}\n exit={{ opacity: 0 }}\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\n transition={{\n opacity: {\n duration: 0,\n },\n }}\n key={\n isOpen && !isWrapped\n ? `accordionHeadTitleBig--${uuid}`\n : `accordionHeadTitle--${uuid}`\n }\n >\n {title}\n </StyledMotionTitle>\n </AnimatePresence>\n </StyledMotionTitleWrapper>\n {titleElement && (\n <StyledMotionTitleElementWrapper\n layout\n key={`accordionTitleElement--${uuid}`}\n ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
@@ -64,6 +64,13 @@ const ComboBox = ({
64
64
  const isTouch = (0, _environment.getIsTouch)();
65
65
  const areaProvider = (0, _react2.useContext)(_AreaContextProvider.AreaContext);
66
66
  const shouldChangeColor = (0, _react2.useMemo)(() => areaProvider.shouldChangeColor ?? false, [areaProvider.shouldChangeColor]);
67
+ const shouldDisableActions = (0, _react2.useMemo)(() => {
68
+ if (!selectedItem) {
69
+ return false;
70
+ }
71
+ const combinedLists = lists.flatMap(list => list.list);
72
+ return combinedLists.length === 1 && combinedLists.some(item => item.value === selectedItem.value);
73
+ }, [lists, selectedItem]);
67
74
  (0, _react2.useEffect)(() => {
68
75
  if (styledComboBoxElementRef.current && !container) {
69
76
  const el = styledComboBoxElementRef.current;
@@ -90,6 +97,9 @@ const ComboBox = ({
90
97
  }
91
98
  }, [styledComboBoxElementRef]);
92
99
  const handleOpen = (0, _react2.useCallback)(() => {
100
+ if (shouldDisableActions) {
101
+ return;
102
+ }
93
103
  if (styledComboBoxElementRef.current && newContainer) {
94
104
  const {
95
105
  left: comboBoxLeft,
@@ -108,7 +118,7 @@ const ComboBox = ({
108
118
  });
109
119
  setIsAnimating(true);
110
120
  }
111
- }, [newContainer, direction]);
121
+ }, [shouldDisableActions, newContainer, direction]);
112
122
  const handleClose = (0, _react2.useCallback)(() => {
113
123
  setIsAnimating(false);
114
124
  }, []);
@@ -422,11 +432,11 @@ const ComboBox = ({
422
432
  onClick: handleClear
423
433
  }, /*#__PURE__*/_react2.default.createElement(_Icon.default, {
424
434
  icons: ['fa fa-times']
425
- })), /*#__PURE__*/_react2.default.createElement(_ComboBox.StyledComboBoxIconWrapper, {
435
+ })), !shouldDisableActions && /*#__PURE__*/_react2.default.createElement(_ComboBox.StyledComboBoxIconWrapper, {
426
436
  $shouldShowBorderLeft: shouldShowClearIcon === true && internalSelectedItem !== undefined
427
437
  }, /*#__PURE__*/_react2.default.createElement(_Icon.default, {
428
438
  icons: ['fa fa-chevron-down']
429
- }))), portal), [minWidth, shouldUseFullWidth, shouldUseCurrentItemWidth, direction, handleHeaderClick, isAnimating, isTouch, isDisabled, shouldChangeColor, shouldShowBigImage, prefix, selectedItem, internalSelectedItem, placeholderImageUrl, shouldShowRoundPlaceholderImage, placeholderIcon, inputValue, onInputChange, handleInputBlur, handleInputFocus, placeholderText, shouldShowClearIcon, handleClear, portal]);
439
+ }))), portal), [minWidth, shouldUseFullWidth, shouldUseCurrentItemWidth, direction, handleHeaderClick, isAnimating, isTouch, isDisabled, shouldChangeColor, shouldShowBigImage, prefix, selectedItem, internalSelectedItem, placeholderImageUrl, shouldShowRoundPlaceholderImage, placeholderIcon, inputValue, onInputChange, handleInputBlur, handleInputFocus, placeholderText, shouldShowClearIcon, handleClear, shouldDisableActions, portal]);
430
440
  };
431
441
  ComboBox.displayName = 'ComboBox';
432
442
  var _default = exports.default = ComboBox;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","names":["_chaynsApi","require","_react","_react2","_interopRequireWildcard","_reactDom","_comboBox","_calculate","_environment","_AreaContextProvider","_Icon","_interopRequireDefault","_ComboBoxItem","_ComboBox","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ComboBox","bodyWidth","direction","ComboBoxDirection","BOTTOM","isDisabled","lists","maxHeight","onSelect","placeholder","prefix","container","selectedItem","shouldShowBigImage","shouldShowClearIcon","shouldShowRoundImage","onInputFocus","shouldUseFullWidth","onInputChange","shouldUseCurrentItemWidth","onInputBlur","inputValue","internalSelectedItem","setInternalSelectedItem","useState","isAnimating","setIsAnimating","minWidth","setMinWidth","undefined","bodyMinWidth","setBodyMinWidth","focusedIndex","setFocusedIndex","overflowY","setOverflowY","translateX","setTranslateX","translateY","setTranslateY","portal","setPortal","internalCoordinates","setInternalCoordinates","x","y","newContainer","setNewContainer","isInputFocused","useRef","styledComboBoxElementRef","contentRef","functions","useFunctions","values","useValues","browser","useDevice","isTouch","getIsTouch","areaProvider","useContext","AreaContext","shouldChangeColor","useMemo","useEffect","current","el","element","closest","Element","handleInputFocus","useCallback","event","handleInputBlur","handleClick","contains","target","handleOpen","left","comboBoxLeft","top","comboBoxTop","height","getBoundingClientRect","scrollLeft","scrollTop","TOP","TOP_LEFT","TOP_RIGHT","includes","handleClose","document","addEventListener","removeEventListener","handleSetSelectedItem","itemToSelect","onSelectResult","Promise","then","shouldPreventSelection","handleClear","preventDefault","stopPropagation","currentContent","scrollHeight","maxHeightInPixels","getMaxHeightInPixels","body","handleKeyDown","key","_contentRef$current","children","length","newIndex","prevElement","tabIndex","newElement","focus","_contentRef$current2","id","newSelectedItem","some","list","find","value","String","replace","_styledComboBoxElemen","allItems","flatMap","hasImage","item","imageUrl","hasIcon","icons","parentWidth","parentElement","width","paddingWidth","imageWidth","iconWidth","prefixWidth","prefixTextWidth","calculateContentWidth","text","Math","max","baseWidth","calculatedWidth","tmpMinWidth","tmpBodyMinWidth","itemWidth","BOTTOM_LEFT","difference","placeholderImageUrl","placeholderIcon","placeholderText","shouldShowRoundPlaceholderImage","selectedItemList","handleHeaderClick","comboBoxGroups","map","createElement","groupName","StyledComboBoxTopic","imageBackground","isSelected","rightElement","subtext","suffixElement","textStyles","bodyStyles","createPortal","AnimatePresence","initial","StyledMotionComboBoxBody","$browser","name","animate","opacity","$overflowY","$translateX","$translateY","exit","$maxHeight","$minWidth","style","$direction","$shouldUseCurrentItemWidth","transition","duration","ref","StyledComboBox","$shouldUseFullWidth","StyledComboBoxHeader","onClick","$isOpen","$isTouch","$isDisabled","$shouldChangeColor","$shouldShowBigImage","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxPrefix","StyledComboBoxPlaceholder","$shouldReduceOpacity","StyledComboBoxPlaceholderImage","src","$shouldShowRoundImage","StyledComboBoxInput","disabled","onChange","onBlur","onFocus","StyledComboBoxPlaceholderText","StyledComboBoxClearIconWrapper","StyledComboBoxIconWrapper","$shouldShowBorderLeft","displayName","_default","exports"],"sources":["../../../../src/components/combobox/ComboBox.tsx"],"sourcesContent":["import { useDevice, useFunctions, useValues } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n ChangeEventHandler,\n type CSSProperties,\n FC,\n FocusEventHandler,\n ReactHTML,\n type ReactNode,\n ReactPortal,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { BrowserName } from '../../types/chayns';\nimport { ComboBoxDirection } from '../../types/comboBox';\nimport { calculateContentWidth, getMaxHeightInPixels } from '../../utils/calculate';\nimport { getIsTouch } from '../../utils/environment';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport type { ContextMenuCoordinates } from '../context-menu/ContextMenu';\nimport Icon from '../icon/Icon';\nimport ComboBoxItem from './combobox-item/ComboBoxItem';\nimport {\n StyledComboBox,\n StyledComboBoxClearIconWrapper,\n StyledComboBoxHeader,\n StyledComboBoxIconWrapper,\n StyledComboBoxInput,\n StyledComboBoxPlaceholder,\n StyledComboBoxPlaceholderImage,\n StyledComboBoxPlaceholderText,\n StyledComboBoxPrefix,\n StyledComboBoxPrefixAndPlaceholderWrapper,\n StyledComboBoxTopic,\n StyledMotionComboBoxBody,\n} from './ComboBox.styles';\n\nexport interface IComboBoxItems {\n groupName?: string;\n list: Array<IComboBoxItem>;\n shouldShowRoundImage?: boolean;\n}\n\nexport interface ComboBoxTextStyles {\n tagName?: keyof ReactHTML;\n styles?: CSSProperties;\n}\n\nexport interface IComboBoxItem {\n icons?: string[];\n imageBackground?: CSSProperties['background'];\n imageUrl?: string;\n isDisabled?: boolean;\n rightElement?: ReactNode;\n subtext?: string;\n suffixElement?: ReactNode;\n text: string;\n value: string | number;\n textStyles?: ComboBoxTextStyles;\n}\n\nexport type ComboBoxProps = {\n bodyWidth?: number;\n /**\n * The element where the content of the `ComboBox` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * The direction in which the combobox should open.\n */\n direction?: ComboBoxDirection;\n /**\n * The value of the optional input.\n */\n inputValue?: string;\n /**\n * Whether the combobox should be disabled.\n */\n isDisabled?: boolean;\n /**\n * The list of the items that should be displayed.\n */\n lists: IComboBoxItems[];\n /**\n * The maximum height of the combobox content.\n */\n maxHeight?: CSSProperties['maxHeight'];\n /**\n * Function to be executed when the value of the optional input is changed.\n */\n onInputChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when the optional input lost its focus.\n */\n onInputBlur?: FocusEventHandler<HTMLInputElement> /**\n * Function to be executed when the optional input gets its focus.\n */;\n onInputFocus?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function that should be executed when an item is selected. If the function returns false, the item will not be selected.\n */\n onSelect?: (comboboxItem?: IComboBoxItem) => Promise<boolean> | boolean | void;\n /**\n * A text that should be displayed when no item is selected.\n */\n placeholder: string;\n /**\n * A prefix that should be displayed before the placeholder.\n */\n prefix?: string;\n /**\n * An item that should be preselected.\n */\n selectedItem?: IComboBoxItem;\n /**\n * If true, the images of the items are displayed in a bigger shape. This prop will automatically be set to true if the subtext of an item is given.\n */\n shouldShowBigImage?: boolean;\n /**\n * If true, a clear icon is displayed at the end of the combo box if an item is selected.\n */\n shouldShowClearIcon?: boolean;\n /**\n * If true, the images of the items are displayed in a round shape.\n */\n shouldShowRoundImage?: boolean;\n /**\n * Whether the width of the ComboBox should be the width of the current item.\n */\n shouldUseCurrentItemWidth?: boolean;\n /**\n * Whether the width of the 'ComboBox' should be the width of the parent or of the widest item.\n */\n shouldUseFullWidth?: boolean;\n};\n\nconst ComboBox: FC<ComboBoxProps> = ({\n bodyWidth,\n direction = ComboBoxDirection.BOTTOM,\n isDisabled = false,\n lists,\n maxHeight = '280px',\n onSelect,\n placeholder,\n prefix,\n container,\n selectedItem,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldShowRoundImage,\n onInputFocus,\n shouldUseFullWidth = false,\n onInputChange,\n shouldUseCurrentItemWidth = false,\n onInputBlur,\n inputValue,\n}) => {\n const [internalSelectedItem, setInternalSelectedItem] = useState<IComboBoxItem>();\n const [isAnimating, setIsAnimating] = useState(false);\n const [minWidth, setMinWidth] = useState<number | undefined>(undefined);\n const [bodyMinWidth, setBodyMinWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [overflowY, setOverflowY] = useState<CSSProperties['overflowY']>('hidden');\n const [translateX, setTranslateX] = useState<string>('0px');\n const [translateY, setTranslateY] = useState<string>('0px');\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 isInputFocused = useRef(false);\n\n const styledComboBoxElementRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const functions = useFunctions();\n const values = useValues();\n\n const { browser } = useDevice();\n\n const isTouch = getIsTouch();\n\n const areaProvider = useContext(AreaContext);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n useEffect(() => {\n if (styledComboBoxElementRef.current && !container) {\n const el = styledComboBoxElementRef.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 const handleInputFocus: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = true;\n onInputFocus?.(event);\n },\n [onInputFocus],\n );\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = false;\n onInputBlur?.(event);\n },\n [onInputBlur],\n );\n\n const handleClick = useCallback(\n (event: MouseEvent) => {\n if (\n styledComboBoxElementRef.current &&\n !styledComboBoxElementRef.current.contains(event.target as Node) &&\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n setIsAnimating(false);\n }\n },\n [styledComboBoxElementRef],\n );\n\n const handleOpen = useCallback(() => {\n if (styledComboBoxElementRef.current && newContainer) {\n const {\n left: comboBoxLeft,\n top: comboBoxTop,\n height,\n } = styledComboBoxElementRef.current.getBoundingClientRect();\n\n const { left, top } = newContainer.getBoundingClientRect();\n\n const x = comboBoxLeft - left + newContainer.scrollLeft;\n const y = comboBoxTop - top + newContainer.scrollTop;\n\n setInternalCoordinates({\n x,\n y: [\n ComboBoxDirection.TOP,\n ComboBoxDirection.TOP_LEFT,\n ComboBoxDirection.TOP_RIGHT,\n ].includes(direction)\n ? y\n : y + height,\n });\n\n setIsAnimating(true);\n }\n }, [newContainer, direction]);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\n\n /**\n * This function adds an event listener to the document to close the combobox when the user clicks outside of it\n */\n useEffect(() => {\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, [handleClick, styledComboBoxElementRef]);\n\n /**\n * This function sets the selected item\n */\n const handleSetSelectedItem = useCallback(\n (itemToSelect?: IComboBoxItem) => {\n if (typeof onSelect === 'function') {\n const onSelectResult = onSelect(itemToSelect);\n\n if (onSelectResult === false) {\n return;\n }\n\n if (onSelectResult instanceof Promise) {\n void onSelectResult.then((shouldPreventSelection) => {\n if (shouldPreventSelection) return;\n\n setInternalSelectedItem(itemToSelect);\n setIsAnimating(false);\n });\n\n return;\n }\n }\n\n setInternalSelectedItem(itemToSelect);\n setIsAnimating(false);\n },\n [onSelect],\n );\n\n const handleClear = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n handleSetSelectedItem(undefined);\n },\n [handleSetSelectedItem],\n );\n\n useEffect(() => {\n const currentContent = contentRef.current;\n\n if (portal && isAnimating && currentContent) {\n const scrollHeight = currentContent.scrollHeight ?? 0;\n\n const maxHeightInPixels = getMaxHeightInPixels(\n maxHeight,\n styledComboBoxElementRef.current ?? document.body,\n );\n\n setOverflowY(scrollHeight > maxHeightInPixels ? 'scroll' : 'hidden');\n }\n }, [isAnimating, maxHeight, portal]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating) {\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const children = contentRef.current?.children;\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex + (e.key === 'ArrowUp' ? -1 : 1) + children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n const element = contentRef.current?.children[focusedIndex];\n\n if (!element) {\n return;\n }\n\n const { id } = element;\n\n let newSelectedItem: IComboBoxItem | undefined;\n\n lists.some((list) => {\n newSelectedItem = list.list.find(\n ({ value }) => String(value) === id.replace('combobox-item__', ''),\n );\n return !!newSelectedItem;\n });\n\n if (!newSelectedItem) {\n return;\n }\n\n handleSetSelectedItem(newSelectedItem);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [focusedIndex, handleSetSelectedItem, isAnimating, lists]);\n\n /**\n * This function calculates the greatest width\n */\n useEffect(() => {\n const allItems = lists.flatMap((list) => list.list);\n const hasImage = [selectedItem, ...allItems].some((item) => item?.imageUrl);\n const hasIcon = [selectedItem, ...allItems].some((item) => item?.icons);\n\n const parentWidth =\n styledComboBoxElementRef.current?.parentElement?.getBoundingClientRect().width ?? 0;\n\n const paddingWidth = 20 + 2 + 40 + 40; // padding + border + arrow icon + optional clear icon\n const imageWidth = hasImage ? 32 : 0; // image width + gap if images present\n const iconWidth = hasIcon ? 40 : 0; // icon width + gap if icons present\n\n let prefixWidth = 0;\n\n if (prefix) {\n const prefixTextWidth =\n calculateContentWidth([{ text: prefix, value: 'prefix' }], functions, values) + 5;\n\n prefixWidth = Math.max(prefixTextWidth, 32);\n }\n\n const baseWidth = calculateContentWidth(\n [\n ...allItems,\n { text: placeholder, value: 'placeholder' },\n ...(selectedItem ? [selectedItem] : []),\n ],\n functions,\n values,\n );\n\n const calculatedWidth = baseWidth + paddingWidth + imageWidth + iconWidth + prefixWidth;\n\n let tmpMinWidth = calculatedWidth;\n let tmpBodyMinWidth = calculatedWidth;\n\n // Full width settings\n if (shouldUseFullWidth) {\n tmpMinWidth = parentWidth;\n\n tmpBodyMinWidth =\n parentWidth < calculatedWidth - 20 ? calculatedWidth - 20 : parentWidth;\n }\n\n // Current item width settings\n else if (shouldUseCurrentItemWidth && internalSelectedItem) {\n const itemWidth =\n calculateContentWidth([internalSelectedItem], functions, values) +\n paddingWidth +\n imageWidth +\n iconWidth +\n prefixWidth;\n\n tmpMinWidth = itemWidth;\n\n tmpBodyMinWidth = itemWidth < calculatedWidth - 20 ? calculatedWidth - 20 : itemWidth;\n }\n\n if (tmpMinWidth > parentWidth) {\n tmpMinWidth = parentWidth;\n }\n\n if (tmpBodyMinWidth > parentWidth) {\n tmpBodyMinWidth = parentWidth;\n }\n\n setMinWidth(tmpMinWidth);\n setBodyMinWidth(shouldUseCurrentItemWidth ? tmpMinWidth : tmpBodyMinWidth);\n }, [\n lists,\n placeholder,\n shouldUseFullWidth,\n shouldUseCurrentItemWidth,\n internalSelectedItem,\n prefix,\n selectedItem,\n functions,\n values,\n ]);\n\n /**\n * This function sets the external selected item\n */\n useEffect(() => {\n setIsAnimating(false);\n setInternalSelectedItem(selectedItem);\n }, [selectedItem]);\n\n useEffect(() => {\n if (\n [ComboBoxDirection.BOTTOM_LEFT, ComboBoxDirection.TOP_LEFT].includes(direction) &&\n typeof bodyWidth === 'number' &&\n typeof minWidth === 'number'\n ) {\n const difference = minWidth - bodyWidth;\n\n setTranslateX(`${difference}px`);\n } else {\n setTranslateX('0px');\n }\n }, [bodyWidth, direction, minWidth]);\n\n const placeholderImageUrl = useMemo(() => {\n if (selectedItem) {\n return selectedItem.imageUrl;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.imageUrl;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n const placeholderIcon = useMemo(() => {\n if (selectedItem) {\n return selectedItem.icons;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.icons;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n /**\n * This function resets the placeholder\n */\n const placeholderText = useMemo(() => {\n let text = placeholder;\n\n if (selectedItem) {\n text = selectedItem.text;\n } else if (internalSelectedItem) {\n text = internalSelectedItem.text;\n }\n\n return text;\n }, [internalSelectedItem, placeholder, selectedItem]);\n\n const shouldShowRoundPlaceholderImage = useMemo(() => {\n const selectedItemList = lists.find((list) =>\n list.list.some(\n ({ value }) => value === (selectedItem?.value ?? internalSelectedItem?.value),\n ),\n );\n\n return selectedItemList?.shouldShowRoundImage ?? shouldShowRoundImage;\n }, [internalSelectedItem?.value, lists, selectedItem?.value, shouldShowRoundImage]);\n\n /**\n * This function opens the content of the combobox\n */\n const handleHeaderClick = useCallback(() => {\n if (!isDisabled && !isInputFocused.current) {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n }, [handleClose, handleOpen, isAnimating, isDisabled]);\n\n const comboBoxGroups = useMemo(\n () =>\n lists.map((list) => (\n <div key={list.groupName ?? 'default-group'}>\n {list.groupName && lists.length > 1 && (\n <StyledComboBoxTopic>{list.groupName}</StyledComboBoxTopic>\n )}\n {list.list.map((item) => (\n // ToDo: Cleanup this - item should be given as a prop to avoid full spreading\n <ComboBoxItem\n icons={item.icons}\n id={item.value}\n imageBackground={item.imageBackground}\n imageUrl={item.imageUrl}\n isDisabled={item.isDisabled}\n isSelected={selectedItem ? item.value === selectedItem.value : false}\n key={item.value}\n onSelect={handleSetSelectedItem}\n rightElement={item.rightElement}\n shouldShowBigImage={shouldShowBigImage}\n shouldShowRoundImage={list.shouldShowRoundImage ?? shouldShowRoundImage}\n subtext={item.subtext}\n suffixElement={item.suffixElement}\n text={item.text}\n value={item.value}\n textStyles={item.textStyles}\n />\n ))}\n </div>\n )),\n [handleSetSelectedItem, lists, selectedItem, shouldShowBigImage, shouldShowRoundImage],\n );\n\n const bodyStyles = useMemo(\n () => ({ left: internalCoordinates.x, top: internalCoordinates.y }),\n [internalCoordinates.x, internalCoordinates.y],\n );\n\n useEffect(() => {\n if (\n [\n ComboBoxDirection.TOP,\n ComboBoxDirection.TOP_LEFT,\n ComboBoxDirection.TOP_RIGHT,\n ].includes(direction)\n ) {\n setTranslateY('-100%');\n } else {\n setTranslateY('0px');\n }\n }, [direction]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isAnimating && (\n <StyledMotionComboBoxBody\n $browser={browser?.name as BrowserName}\n animate={{ height: 'fit-content', opacity: 1 }}\n $overflowY={overflowY}\n $translateX={translateX}\n $translateY={translateY}\n initial={{ height: 0, opacity: 0 }}\n exit={{ height: 0, opacity: 0 }}\n $maxHeight={maxHeight}\n $minWidth={bodyWidth ?? bodyMinWidth}\n style={bodyStyles}\n $direction={direction}\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n transition={{ duration: 0.2 }}\n tabIndex={0}\n ref={contentRef}\n >\n {comboBoxGroups}\n </StyledMotionComboBoxBody>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n bodyWidth,\n bodyMinWidth,\n bodyStyles,\n browser?.name,\n comboBoxGroups,\n newContainer,\n direction,\n isAnimating,\n maxHeight,\n minWidth,\n overflowY,\n shouldUseCurrentItemWidth,\n translateX,\n translateY,\n ]);\n\n return useMemo(\n () => (\n <StyledComboBox\n ref={styledComboBoxElementRef}\n $minWidth={minWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n >\n <StyledComboBoxHeader\n $direction={direction}\n onClick={handleHeaderClick}\n $isOpen={isAnimating}\n $isTouch={isTouch}\n $isDisabled={isDisabled}\n $shouldChangeColor={shouldChangeColor}\n $shouldShowBigImage={shouldShowBigImage}\n >\n <StyledComboBoxPrefixAndPlaceholderWrapper>\n {prefix && <StyledComboBoxPrefix>{prefix}</StyledComboBoxPrefix>}\n <StyledComboBoxPlaceholder\n $shouldReduceOpacity={!selectedItem && !internalSelectedItem}\n >\n {placeholderImageUrl && (\n <StyledComboBoxPlaceholderImage\n src={placeholderImageUrl}\n $shouldShowBigImage={shouldShowBigImage}\n $shouldShowRoundImage={shouldShowRoundPlaceholderImage}\n />\n )}\n {placeholderIcon && <Icon icons={placeholderIcon} />}\n {typeof inputValue === 'string' ? (\n <StyledComboBoxInput\n disabled={isDisabled}\n value={inputValue}\n onChange={onInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n placeholder={placeholderText}\n />\n ) : (\n <StyledComboBoxPlaceholderText>\n {placeholderText}\n </StyledComboBoxPlaceholderText>\n )}\n {internalSelectedItem &&\n internalSelectedItem.suffixElement &&\n internalSelectedItem.suffixElement}\n </StyledComboBoxPlaceholder>\n </StyledComboBoxPrefixAndPlaceholderWrapper>\n {shouldShowClearIcon && internalSelectedItem && (\n <StyledComboBoxClearIconWrapper onClick={handleClear}>\n <Icon icons={['fa fa-times']} />\n </StyledComboBoxClearIconWrapper>\n )}\n <StyledComboBoxIconWrapper\n $shouldShowBorderLeft={\n shouldShowClearIcon === true && internalSelectedItem !== undefined\n }\n >\n <Icon icons={['fa fa-chevron-down']} />\n </StyledComboBoxIconWrapper>\n </StyledComboBoxHeader>\n {portal}\n </StyledComboBox>\n ),\n [\n minWidth,\n shouldUseFullWidth,\n shouldUseCurrentItemWidth,\n direction,\n handleHeaderClick,\n isAnimating,\n isTouch,\n isDisabled,\n shouldChangeColor,\n shouldShowBigImage,\n prefix,\n selectedItem,\n internalSelectedItem,\n placeholderImageUrl,\n shouldShowRoundPlaceholderImage,\n placeholderIcon,\n inputValue,\n onInputChange,\n handleInputBlur,\n handleInputFocus,\n placeholderText,\n shouldShowClearIcon,\n handleClear,\n portal,\n ],\n );\n};\n\nComboBox.displayName = 'ComboBox';\n\nexport default ComboBox;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ComboBox.js","names":["_chaynsApi","require","_react","_react2","_interopRequireWildcard","_reactDom","_comboBox","_calculate","_environment","_AreaContextProvider","_Icon","_interopRequireDefault","_ComboBoxItem","_ComboBox","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ComboBox","bodyWidth","direction","ComboBoxDirection","BOTTOM","isDisabled","lists","maxHeight","onSelect","placeholder","prefix","container","selectedItem","shouldShowBigImage","shouldShowClearIcon","shouldShowRoundImage","onInputFocus","shouldUseFullWidth","onInputChange","shouldUseCurrentItemWidth","onInputBlur","inputValue","internalSelectedItem","setInternalSelectedItem","useState","isAnimating","setIsAnimating","minWidth","setMinWidth","undefined","bodyMinWidth","setBodyMinWidth","focusedIndex","setFocusedIndex","overflowY","setOverflowY","translateX","setTranslateX","translateY","setTranslateY","portal","setPortal","internalCoordinates","setInternalCoordinates","x","y","newContainer","setNewContainer","isInputFocused","useRef","styledComboBoxElementRef","contentRef","functions","useFunctions","values","useValues","browser","useDevice","isTouch","getIsTouch","areaProvider","useContext","AreaContext","shouldChangeColor","useMemo","shouldDisableActions","combinedLists","flatMap","list","length","some","item","value","useEffect","current","el","element","closest","Element","handleInputFocus","useCallback","event","handleInputBlur","handleClick","contains","target","handleOpen","left","comboBoxLeft","top","comboBoxTop","height","getBoundingClientRect","scrollLeft","scrollTop","TOP","TOP_LEFT","TOP_RIGHT","includes","handleClose","document","addEventListener","removeEventListener","handleSetSelectedItem","itemToSelect","onSelectResult","Promise","then","shouldPreventSelection","handleClear","preventDefault","stopPropagation","currentContent","scrollHeight","maxHeightInPixels","getMaxHeightInPixels","body","handleKeyDown","key","_contentRef$current","children","newIndex","prevElement","tabIndex","newElement","focus","_contentRef$current2","id","newSelectedItem","find","String","replace","_styledComboBoxElemen","allItems","hasImage","imageUrl","hasIcon","icons","parentWidth","parentElement","width","paddingWidth","imageWidth","iconWidth","prefixWidth","prefixTextWidth","calculateContentWidth","text","Math","max","baseWidth","calculatedWidth","tmpMinWidth","tmpBodyMinWidth","itemWidth","BOTTOM_LEFT","difference","placeholderImageUrl","placeholderIcon","placeholderText","shouldShowRoundPlaceholderImage","selectedItemList","handleHeaderClick","comboBoxGroups","map","createElement","groupName","StyledComboBoxTopic","imageBackground","isSelected","rightElement","subtext","suffixElement","textStyles","bodyStyles","createPortal","AnimatePresence","initial","StyledMotionComboBoxBody","$browser","name","animate","opacity","$overflowY","$translateX","$translateY","exit","$maxHeight","$minWidth","style","$direction","$shouldUseCurrentItemWidth","transition","duration","ref","StyledComboBox","$shouldUseFullWidth","StyledComboBoxHeader","onClick","$isOpen","$isTouch","$isDisabled","$shouldChangeColor","$shouldShowBigImage","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxPrefix","StyledComboBoxPlaceholder","$shouldReduceOpacity","StyledComboBoxPlaceholderImage","src","$shouldShowRoundImage","StyledComboBoxInput","disabled","onChange","onBlur","onFocus","StyledComboBoxPlaceholderText","StyledComboBoxClearIconWrapper","StyledComboBoxIconWrapper","$shouldShowBorderLeft","displayName","_default","exports"],"sources":["../../../../src/components/combobox/ComboBox.tsx"],"sourcesContent":["import { useDevice, useFunctions, useValues } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n ChangeEventHandler,\n type CSSProperties,\n FC,\n FocusEventHandler,\n ReactHTML,\n type ReactNode,\n ReactPortal,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { BrowserName } from '../../types/chayns';\nimport { ComboBoxDirection } from '../../types/comboBox';\nimport { calculateContentWidth, getMaxHeightInPixels } from '../../utils/calculate';\nimport { getIsTouch } from '../../utils/environment';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport type { ContextMenuCoordinates } from '../context-menu/ContextMenu';\nimport Icon from '../icon/Icon';\nimport ComboBoxItem from './combobox-item/ComboBoxItem';\nimport {\n StyledComboBox,\n StyledComboBoxClearIconWrapper,\n StyledComboBoxHeader,\n StyledComboBoxIconWrapper,\n StyledComboBoxInput,\n StyledComboBoxPlaceholder,\n StyledComboBoxPlaceholderImage,\n StyledComboBoxPlaceholderText,\n StyledComboBoxPrefix,\n StyledComboBoxPrefixAndPlaceholderWrapper,\n StyledComboBoxTopic,\n StyledMotionComboBoxBody,\n} from './ComboBox.styles';\n\nexport interface IComboBoxItems {\n groupName?: string;\n list: Array<IComboBoxItem>;\n shouldShowRoundImage?: boolean;\n}\n\nexport interface ComboBoxTextStyles {\n tagName?: keyof ReactHTML;\n styles?: CSSProperties;\n}\n\nexport interface IComboBoxItem {\n icons?: string[];\n imageBackground?: CSSProperties['background'];\n imageUrl?: string;\n isDisabled?: boolean;\n rightElement?: ReactNode;\n subtext?: string;\n suffixElement?: ReactNode;\n text: string;\n value: string | number;\n textStyles?: ComboBoxTextStyles;\n}\n\nexport type ComboBoxProps = {\n bodyWidth?: number;\n /**\n * The element where the content of the `ComboBox` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * The direction in which the combobox should open.\n */\n direction?: ComboBoxDirection;\n /**\n * The value of the optional input.\n */\n inputValue?: string;\n /**\n * Whether the combobox should be disabled.\n */\n isDisabled?: boolean;\n /**\n * The list of the items that should be displayed.\n */\n lists: IComboBoxItems[];\n /**\n * The maximum height of the combobox content.\n */\n maxHeight?: CSSProperties['maxHeight'];\n /**\n * Function to be executed when the value of the optional input is changed.\n */\n onInputChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when the optional input lost its focus.\n */\n onInputBlur?: FocusEventHandler<HTMLInputElement> /**\n * Function to be executed when the optional input gets its focus.\n */;\n onInputFocus?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function that should be executed when an item is selected. If the function returns false, the item will not be selected.\n */\n onSelect?: (comboboxItem?: IComboBoxItem) => Promise<boolean> | boolean | void;\n /**\n * A text that should be displayed when no item is selected.\n */\n placeholder: string;\n /**\n * A prefix that should be displayed before the placeholder.\n */\n prefix?: string;\n /**\n * An item that should be preselected.\n */\n selectedItem?: IComboBoxItem;\n /**\n * If true, the images of the items are displayed in a bigger shape. This prop will automatically be set to true if the subtext of an item is given.\n */\n shouldShowBigImage?: boolean;\n /**\n * If true, a clear icon is displayed at the end of the combo box if an item is selected.\n */\n shouldShowClearIcon?: boolean;\n /**\n * If true, the images of the items are displayed in a round shape.\n */\n shouldShowRoundImage?: boolean;\n /**\n * Whether the width of the ComboBox should be the width of the current item.\n */\n shouldUseCurrentItemWidth?: boolean;\n /**\n * Whether the width of the 'ComboBox' should be the width of the parent or of the widest item.\n */\n shouldUseFullWidth?: boolean;\n};\n\nconst ComboBox: FC<ComboBoxProps> = ({\n bodyWidth,\n direction = ComboBoxDirection.BOTTOM,\n isDisabled = false,\n lists,\n maxHeight = '280px',\n onSelect,\n placeholder,\n prefix,\n container,\n selectedItem,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldShowRoundImage,\n onInputFocus,\n shouldUseFullWidth = false,\n onInputChange,\n shouldUseCurrentItemWidth = false,\n onInputBlur,\n inputValue,\n}) => {\n const [internalSelectedItem, setInternalSelectedItem] = useState<IComboBoxItem>();\n const [isAnimating, setIsAnimating] = useState(false);\n const [minWidth, setMinWidth] = useState<number | undefined>(undefined);\n const [bodyMinWidth, setBodyMinWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [overflowY, setOverflowY] = useState<CSSProperties['overflowY']>('hidden');\n const [translateX, setTranslateX] = useState<string>('0px');\n const [translateY, setTranslateY] = useState<string>('0px');\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 isInputFocused = useRef(false);\n\n const styledComboBoxElementRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const functions = useFunctions();\n const values = useValues();\n\n const { browser } = useDevice();\n\n const isTouch = getIsTouch();\n\n const areaProvider = useContext(AreaContext);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n const shouldDisableActions = useMemo(() => {\n if (!selectedItem) {\n return false;\n }\n\n const combinedLists = lists.flatMap((list) => list.list);\n\n return (\n combinedLists.length === 1 &&\n combinedLists.some((item) => item.value === selectedItem.value)\n );\n }, [lists, selectedItem]);\n\n useEffect(() => {\n if (styledComboBoxElementRef.current && !container) {\n const el = styledComboBoxElementRef.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 const handleInputFocus: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = true;\n onInputFocus?.(event);\n },\n [onInputFocus],\n );\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = false;\n onInputBlur?.(event);\n },\n [onInputBlur],\n );\n\n const handleClick = useCallback(\n (event: MouseEvent) => {\n if (\n styledComboBoxElementRef.current &&\n !styledComboBoxElementRef.current.contains(event.target as Node) &&\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n setIsAnimating(false);\n }\n },\n [styledComboBoxElementRef],\n );\n\n const handleOpen = useCallback(() => {\n if (shouldDisableActions) {\n return;\n }\n\n if (styledComboBoxElementRef.current && newContainer) {\n const {\n left: comboBoxLeft,\n top: comboBoxTop,\n height,\n } = styledComboBoxElementRef.current.getBoundingClientRect();\n\n const { left, top } = newContainer.getBoundingClientRect();\n\n const x = comboBoxLeft - left + newContainer.scrollLeft;\n const y = comboBoxTop - top + newContainer.scrollTop;\n\n setInternalCoordinates({\n x,\n y: [\n ComboBoxDirection.TOP,\n ComboBoxDirection.TOP_LEFT,\n ComboBoxDirection.TOP_RIGHT,\n ].includes(direction)\n ? y\n : y + height,\n });\n\n setIsAnimating(true);\n }\n }, [shouldDisableActions, newContainer, direction]);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\n\n /**\n * This function adds an event listener to the document to close the combobox when the user clicks outside of it\n */\n useEffect(() => {\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, [handleClick, styledComboBoxElementRef]);\n\n /**\n * This function sets the selected item\n */\n const handleSetSelectedItem = useCallback(\n (itemToSelect?: IComboBoxItem) => {\n if (typeof onSelect === 'function') {\n const onSelectResult = onSelect(itemToSelect);\n\n if (onSelectResult === false) {\n return;\n }\n\n if (onSelectResult instanceof Promise) {\n void onSelectResult.then((shouldPreventSelection) => {\n if (shouldPreventSelection) return;\n\n setInternalSelectedItem(itemToSelect);\n setIsAnimating(false);\n });\n\n return;\n }\n }\n\n setInternalSelectedItem(itemToSelect);\n setIsAnimating(false);\n },\n [onSelect],\n );\n\n const handleClear = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n handleSetSelectedItem(undefined);\n },\n [handleSetSelectedItem],\n );\n\n useEffect(() => {\n const currentContent = contentRef.current;\n\n if (portal && isAnimating && currentContent) {\n const scrollHeight = currentContent.scrollHeight ?? 0;\n\n const maxHeightInPixels = getMaxHeightInPixels(\n maxHeight,\n styledComboBoxElementRef.current ?? document.body,\n );\n\n setOverflowY(scrollHeight > maxHeightInPixels ? 'scroll' : 'hidden');\n }\n }, [isAnimating, maxHeight, portal]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating) {\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const children = contentRef.current?.children;\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex + (e.key === 'ArrowUp' ? -1 : 1) + children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n const element = contentRef.current?.children[focusedIndex];\n\n if (!element) {\n return;\n }\n\n const { id } = element;\n\n let newSelectedItem: IComboBoxItem | undefined;\n\n lists.some((list) => {\n newSelectedItem = list.list.find(\n ({ value }) => String(value) === id.replace('combobox-item__', ''),\n );\n return !!newSelectedItem;\n });\n\n if (!newSelectedItem) {\n return;\n }\n\n handleSetSelectedItem(newSelectedItem);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [focusedIndex, handleSetSelectedItem, isAnimating, lists]);\n\n /**\n * This function calculates the greatest width\n */\n useEffect(() => {\n const allItems = lists.flatMap((list) => list.list);\n const hasImage = [selectedItem, ...allItems].some((item) => item?.imageUrl);\n const hasIcon = [selectedItem, ...allItems].some((item) => item?.icons);\n\n const parentWidth =\n styledComboBoxElementRef.current?.parentElement?.getBoundingClientRect().width ?? 0;\n\n const paddingWidth = 20 + 2 + 40 + 40; // padding + border + arrow icon + optional clear icon\n const imageWidth = hasImage ? 32 : 0; // image width + gap if images present\n const iconWidth = hasIcon ? 40 : 0; // icon width + gap if icons present\n\n let prefixWidth = 0;\n\n if (prefix) {\n const prefixTextWidth =\n calculateContentWidth([{ text: prefix, value: 'prefix' }], functions, values) + 5;\n\n prefixWidth = Math.max(prefixTextWidth, 32);\n }\n\n const baseWidth = calculateContentWidth(\n [\n ...allItems,\n { text: placeholder, value: 'placeholder' },\n ...(selectedItem ? [selectedItem] : []),\n ],\n functions,\n values,\n );\n\n const calculatedWidth = baseWidth + paddingWidth + imageWidth + iconWidth + prefixWidth;\n\n let tmpMinWidth = calculatedWidth;\n let tmpBodyMinWidth = calculatedWidth;\n\n // Full width settings\n if (shouldUseFullWidth) {\n tmpMinWidth = parentWidth;\n\n tmpBodyMinWidth =\n parentWidth < calculatedWidth - 20 ? calculatedWidth - 20 : parentWidth;\n }\n\n // Current item width settings\n else if (shouldUseCurrentItemWidth && internalSelectedItem) {\n const itemWidth =\n calculateContentWidth([internalSelectedItem], functions, values) +\n paddingWidth +\n imageWidth +\n iconWidth +\n prefixWidth;\n\n tmpMinWidth = itemWidth;\n\n tmpBodyMinWidth = itemWidth < calculatedWidth - 20 ? calculatedWidth - 20 : itemWidth;\n }\n\n if (tmpMinWidth > parentWidth) {\n tmpMinWidth = parentWidth;\n }\n\n if (tmpBodyMinWidth > parentWidth) {\n tmpBodyMinWidth = parentWidth;\n }\n\n setMinWidth(tmpMinWidth);\n setBodyMinWidth(shouldUseCurrentItemWidth ? tmpMinWidth : tmpBodyMinWidth);\n }, [\n lists,\n placeholder,\n shouldUseFullWidth,\n shouldUseCurrentItemWidth,\n internalSelectedItem,\n prefix,\n selectedItem,\n functions,\n values,\n ]);\n\n /**\n * This function sets the external selected item\n */\n useEffect(() => {\n setIsAnimating(false);\n setInternalSelectedItem(selectedItem);\n }, [selectedItem]);\n\n useEffect(() => {\n if (\n [ComboBoxDirection.BOTTOM_LEFT, ComboBoxDirection.TOP_LEFT].includes(direction) &&\n typeof bodyWidth === 'number' &&\n typeof minWidth === 'number'\n ) {\n const difference = minWidth - bodyWidth;\n\n setTranslateX(`${difference}px`);\n } else {\n setTranslateX('0px');\n }\n }, [bodyWidth, direction, minWidth]);\n\n const placeholderImageUrl = useMemo(() => {\n if (selectedItem) {\n return selectedItem.imageUrl;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.imageUrl;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n const placeholderIcon = useMemo(() => {\n if (selectedItem) {\n return selectedItem.icons;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.icons;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n /**\n * This function resets the placeholder\n */\n const placeholderText = useMemo(() => {\n let text = placeholder;\n\n if (selectedItem) {\n text = selectedItem.text;\n } else if (internalSelectedItem) {\n text = internalSelectedItem.text;\n }\n\n return text;\n }, [internalSelectedItem, placeholder, selectedItem]);\n\n const shouldShowRoundPlaceholderImage = useMemo(() => {\n const selectedItemList = lists.find((list) =>\n list.list.some(\n ({ value }) => value === (selectedItem?.value ?? internalSelectedItem?.value),\n ),\n );\n\n return selectedItemList?.shouldShowRoundImage ?? shouldShowRoundImage;\n }, [internalSelectedItem?.value, lists, selectedItem?.value, shouldShowRoundImage]);\n\n /**\n * This function opens the content of the combobox\n */\n const handleHeaderClick = useCallback(() => {\n if (!isDisabled && !isInputFocused.current) {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n }, [handleClose, handleOpen, isAnimating, isDisabled]);\n\n const comboBoxGroups = useMemo(\n () =>\n lists.map((list) => (\n <div key={list.groupName ?? 'default-group'}>\n {list.groupName && lists.length > 1 && (\n <StyledComboBoxTopic>{list.groupName}</StyledComboBoxTopic>\n )}\n {list.list.map((item) => (\n // ToDo: Cleanup this - item should be given as a prop to avoid full spreading\n <ComboBoxItem\n icons={item.icons}\n id={item.value}\n imageBackground={item.imageBackground}\n imageUrl={item.imageUrl}\n isDisabled={item.isDisabled}\n isSelected={selectedItem ? item.value === selectedItem.value : false}\n key={item.value}\n onSelect={handleSetSelectedItem}\n rightElement={item.rightElement}\n shouldShowBigImage={shouldShowBigImage}\n shouldShowRoundImage={list.shouldShowRoundImage ?? shouldShowRoundImage}\n subtext={item.subtext}\n suffixElement={item.suffixElement}\n text={item.text}\n value={item.value}\n textStyles={item.textStyles}\n />\n ))}\n </div>\n )),\n [handleSetSelectedItem, lists, selectedItem, shouldShowBigImage, shouldShowRoundImage],\n );\n\n const bodyStyles = useMemo(\n () => ({ left: internalCoordinates.x, top: internalCoordinates.y }),\n [internalCoordinates.x, internalCoordinates.y],\n );\n\n useEffect(() => {\n if (\n [\n ComboBoxDirection.TOP,\n ComboBoxDirection.TOP_LEFT,\n ComboBoxDirection.TOP_RIGHT,\n ].includes(direction)\n ) {\n setTranslateY('-100%');\n } else {\n setTranslateY('0px');\n }\n }, [direction]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isAnimating && (\n <StyledMotionComboBoxBody\n $browser={browser?.name as BrowserName}\n animate={{ height: 'fit-content', opacity: 1 }}\n $overflowY={overflowY}\n $translateX={translateX}\n $translateY={translateY}\n initial={{ height: 0, opacity: 0 }}\n exit={{ height: 0, opacity: 0 }}\n $maxHeight={maxHeight}\n $minWidth={bodyWidth ?? bodyMinWidth}\n style={bodyStyles}\n $direction={direction}\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n transition={{ duration: 0.2 }}\n tabIndex={0}\n ref={contentRef}\n >\n {comboBoxGroups}\n </StyledMotionComboBoxBody>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n bodyWidth,\n bodyMinWidth,\n bodyStyles,\n browser?.name,\n comboBoxGroups,\n newContainer,\n direction,\n isAnimating,\n maxHeight,\n minWidth,\n overflowY,\n shouldUseCurrentItemWidth,\n translateX,\n translateY,\n ]);\n\n return useMemo(\n () => (\n <StyledComboBox\n ref={styledComboBoxElementRef}\n $minWidth={minWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n >\n <StyledComboBoxHeader\n $direction={direction}\n onClick={handleHeaderClick}\n $isOpen={isAnimating}\n $isTouch={isTouch}\n $isDisabled={isDisabled}\n $shouldChangeColor={shouldChangeColor}\n $shouldShowBigImage={shouldShowBigImage}\n >\n <StyledComboBoxPrefixAndPlaceholderWrapper>\n {prefix && <StyledComboBoxPrefix>{prefix}</StyledComboBoxPrefix>}\n <StyledComboBoxPlaceholder\n $shouldReduceOpacity={!selectedItem && !internalSelectedItem}\n >\n {placeholderImageUrl && (\n <StyledComboBoxPlaceholderImage\n src={placeholderImageUrl}\n $shouldShowBigImage={shouldShowBigImage}\n $shouldShowRoundImage={shouldShowRoundPlaceholderImage}\n />\n )}\n {placeholderIcon && <Icon icons={placeholderIcon} />}\n {typeof inputValue === 'string' ? (\n <StyledComboBoxInput\n disabled={isDisabled}\n value={inputValue}\n onChange={onInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n placeholder={placeholderText}\n />\n ) : (\n <StyledComboBoxPlaceholderText>\n {placeholderText}\n </StyledComboBoxPlaceholderText>\n )}\n {internalSelectedItem &&\n internalSelectedItem.suffixElement &&\n internalSelectedItem.suffixElement}\n </StyledComboBoxPlaceholder>\n </StyledComboBoxPrefixAndPlaceholderWrapper>\n {shouldShowClearIcon && internalSelectedItem && (\n <StyledComboBoxClearIconWrapper onClick={handleClear}>\n <Icon icons={['fa fa-times']} />\n </StyledComboBoxClearIconWrapper>\n )}\n {!shouldDisableActions && (\n <StyledComboBoxIconWrapper\n $shouldShowBorderLeft={\n shouldShowClearIcon === true && internalSelectedItem !== undefined\n }\n >\n <Icon icons={['fa fa-chevron-down']} />\n </StyledComboBoxIconWrapper>\n )}\n </StyledComboBoxHeader>\n {portal}\n </StyledComboBox>\n ),\n [\n minWidth,\n shouldUseFullWidth,\n shouldUseCurrentItemWidth,\n direction,\n handleHeaderClick,\n isAnimating,\n isTouch,\n isDisabled,\n shouldChangeColor,\n shouldShowBigImage,\n prefix,\n selectedItem,\n internalSelectedItem,\n placeholderImageUrl,\n shouldShowRoundPlaceholderImage,\n placeholderIcon,\n inputValue,\n onInputChange,\n handleInputBlur,\n handleInputFocus,\n placeholderText,\n shouldShowClearIcon,\n handleClear,\n shouldDisableActions,\n portal,\n ],\n );\n};\n\nComboBox.displayName = 'ComboBox';\n\nexport default ComboBox;\n"],"mappings":"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","ignoreList":[]}
@@ -61,7 +61,7 @@ const AccordionHead = _ref => {
61
61
  setHeadHeight(getAccordionHeadHeight({
62
62
  isWrapped,
63
63
  title,
64
- width: (titleWrapperRef.current?.clientWidth ?? 0) - 10,
64
+ width: (titleWrapperRef.current?.clientWidth ?? 0) + 10,
65
65
  hasSearch: typeof onSearchChange === 'function'
66
66
  }));
67
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHead.js","names":["AnimatePresence","LayoutGroup","React","useEffect","useMemo","useRef","useState","useTheme","useElementSize","getAccordionHeadHeight","getElementClickEvent","AreaContext","Icon","Input","InputSize","SearchInput","StyledAccordionIcon","StyledMotionAccordionHead","StyledMotionContentWrapper","StyledMotionIconWrapper","StyledMotionRightElementWrapper","StyledMotionSearchWrapper","StyledMotionTitle","StyledMotionTitleElementWrapper","StyledMotionTitleWrapper","StyledRightWrapper","AccordionHead","_ref","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","titleInputProps","onTitleInputChange","titleColor","headHeight","setHeadHeight","closed","open","isSearchActive","setIsSearchActive","theme","titleElementWrapperRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","handleOnSearchChance","event","target","value","titleElementChildrenSize","shouldUseChildElement","shouldPreventRightElementClick","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","className","$icon","accordionHeadHeight","height","animate","initial","key","rotate","undefined","opacity","ref","$isWrapped","Provider","shouldChangeColor","_extends","onChange","scale","exit","$isOpen","$color","$hasSearch","transition","duration","layout","$isSearchActive","onActiveChange","isActive","placeholder","size","Small","displayName"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/useElementSize';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { InputSize, type InputProps } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\nexport type AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme();\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) - 10,\n hasSearch: typeof onSearchChange === 'function',\n }),\n );\n }\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n theme.accordionIcon !== 110 &&\n theme.accordionIcon !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? (theme.iconStyle as string) : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n key={`accordionHead--${uuid}`}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n key={`accordionHeadIcon--${uuid}`}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n <Input {...titleInputProps} value={title} onChange={onTitleInputChange} />\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence\n initial={false}\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\n <StyledMotionTitle\n animate={{ scale: 1 }}\n initial={{ scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }}\n exit={{ opacity: 0 }}\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\n transition={{\n opacity: {\n duration: 0,\n },\n }}\n key={\n isOpen && !isWrapped\n ? `accordionHeadTitleBig--${uuid}`\n : `accordionHeadTitle--${uuid}`\n }\n >\n {title}\n </StyledMotionTitle>\n </AnimatePresence>\n </StyledMotionTitleWrapper>\n {titleElement && (\n <StyledMotionTitleElementWrapper\n layout\n key={`accordionTitleElement--${uuid}`}\n ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AccordionHead.js","names":["AnimatePresence","LayoutGroup","React","useEffect","useMemo","useRef","useState","useTheme","useElementSize","getAccordionHeadHeight","getElementClickEvent","AreaContext","Icon","Input","InputSize","SearchInput","StyledAccordionIcon","StyledMotionAccordionHead","StyledMotionContentWrapper","StyledMotionIconWrapper","StyledMotionRightElementWrapper","StyledMotionSearchWrapper","StyledMotionTitle","StyledMotionTitleElementWrapper","StyledMotionTitleWrapper","StyledRightWrapper","AccordionHead","_ref","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","titleInputProps","onTitleInputChange","titleColor","headHeight","setHeadHeight","closed","open","isSearchActive","setIsSearchActive","theme","titleElementWrapperRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","handleOnSearchChance","event","target","value","titleElementChildrenSize","shouldUseChildElement","shouldPreventRightElementClick","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","className","$icon","accordionHeadHeight","height","animate","initial","key","rotate","undefined","opacity","ref","$isWrapped","Provider","shouldChangeColor","_extends","onChange","scale","exit","$isOpen","$color","$hasSearch","transition","duration","layout","$isSearchActive","onActiveChange","isActive","placeholder","size","Small","displayName"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/useElementSize';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { InputSize, type InputProps } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\nexport type AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme();\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) + 10,\n hasSearch: typeof onSearchChange === 'function',\n }),\n );\n }\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n theme.accordionIcon !== 110 &&\n theme.accordionIcon !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? (theme.iconStyle as string) : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n key={`accordionHead--${uuid}`}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n key={`accordionHeadIcon--${uuid}`}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n <Input {...titleInputProps} value={title} onChange={onTitleInputChange} />\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence\n initial={false}\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\n <StyledMotionTitle\n animate={{ scale: 1 }}\n initial={{ scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }}\n exit={{ opacity: 0 }}\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\n transition={{\n opacity: {\n duration: 0,\n },\n }}\n key={\n isOpen && !isWrapped\n ? `accordionHeadTitleBig--${uuid}`\n : `accordionHeadTitle--${uuid}`\n }\n >\n {title}\n </StyledMotionTitle>\n </AnimatePresence>\n </StyledMotionTitleWrapper>\n {titleElement && (\n <StyledMotionTitleElementWrapper\n layout\n key={`accordionTitleElement--${uuid}`}\n ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
@@ -56,6 +56,13 @@ const ComboBox = _ref => {
56
56
  const isTouch = getIsTouch();
57
57
  const areaProvider = useContext(AreaContext);
58
58
  const shouldChangeColor = useMemo(() => areaProvider.shouldChangeColor ?? false, [areaProvider.shouldChangeColor]);
59
+ const shouldDisableActions = useMemo(() => {
60
+ if (!selectedItem) {
61
+ return false;
62
+ }
63
+ const combinedLists = lists.flatMap(list => list.list);
64
+ return combinedLists.length === 1 && combinedLists.some(item => item.value === selectedItem.value);
65
+ }, [lists, selectedItem]);
59
66
  useEffect(() => {
60
67
  if (styledComboBoxElementRef.current && !container) {
61
68
  const el = styledComboBoxElementRef.current;
@@ -82,6 +89,9 @@ const ComboBox = _ref => {
82
89
  }
83
90
  }, [styledComboBoxElementRef]);
84
91
  const handleOpen = useCallback(() => {
92
+ if (shouldDisableActions) {
93
+ return;
94
+ }
85
95
  if (styledComboBoxElementRef.current && newContainer) {
86
96
  const {
87
97
  left: comboBoxLeft,
@@ -100,7 +110,7 @@ const ComboBox = _ref => {
100
110
  });
101
111
  setIsAnimating(true);
102
112
  }
103
- }, [newContainer, direction]);
113
+ }, [shouldDisableActions, newContainer, direction]);
104
114
  const handleClose = useCallback(() => {
105
115
  setIsAnimating(false);
106
116
  }, []);
@@ -417,11 +427,11 @@ const ComboBox = _ref => {
417
427
  onClick: handleClear
418
428
  }, /*#__PURE__*/React.createElement(Icon, {
419
429
  icons: ['fa fa-times']
420
- })), /*#__PURE__*/React.createElement(StyledComboBoxIconWrapper, {
430
+ })), !shouldDisableActions && /*#__PURE__*/React.createElement(StyledComboBoxIconWrapper, {
421
431
  $shouldShowBorderLeft: shouldShowClearIcon === true && internalSelectedItem !== undefined
422
432
  }, /*#__PURE__*/React.createElement(Icon, {
423
433
  icons: ['fa fa-chevron-down']
424
- }))), portal), [minWidth, shouldUseFullWidth, shouldUseCurrentItemWidth, direction, handleHeaderClick, isAnimating, isTouch, isDisabled, shouldChangeColor, shouldShowBigImage, prefix, selectedItem, internalSelectedItem, placeholderImageUrl, shouldShowRoundPlaceholderImage, placeholderIcon, inputValue, onInputChange, handleInputBlur, handleInputFocus, placeholderText, shouldShowClearIcon, handleClear, portal]);
434
+ }))), portal), [minWidth, shouldUseFullWidth, shouldUseCurrentItemWidth, direction, handleHeaderClick, isAnimating, isTouch, isDisabled, shouldChangeColor, shouldShowBigImage, prefix, selectedItem, internalSelectedItem, placeholderImageUrl, shouldShowRoundPlaceholderImage, placeholderIcon, inputValue, onInputChange, handleInputBlur, handleInputFocus, placeholderText, shouldShowClearIcon, handleClear, shouldDisableActions, portal]);
425
435
  };
426
436
  ComboBox.displayName = 'ComboBox';
427
437
  export default ComboBox;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","names":["useDevice","useFunctions","useValues","AnimatePresence","React","useCallback","useContext","useEffect","useMemo","useRef","useState","createPortal","ComboBoxDirection","calculateContentWidth","getMaxHeightInPixels","getIsTouch","AreaContext","Icon","ComboBoxItem","StyledComboBox","StyledComboBoxClearIconWrapper","StyledComboBoxHeader","StyledComboBoxIconWrapper","StyledComboBoxInput","StyledComboBoxPlaceholder","StyledComboBoxPlaceholderImage","StyledComboBoxPlaceholderText","StyledComboBoxPrefix","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxTopic","StyledMotionComboBoxBody","ComboBox","_ref","bodyWidth","direction","BOTTOM","isDisabled","lists","maxHeight","onSelect","placeholder","prefix","container","selectedItem","shouldShowBigImage","shouldShowClearIcon","shouldShowRoundImage","onInputFocus","shouldUseFullWidth","onInputChange","shouldUseCurrentItemWidth","onInputBlur","inputValue","internalSelectedItem","setInternalSelectedItem","isAnimating","setIsAnimating","minWidth","setMinWidth","undefined","bodyMinWidth","setBodyMinWidth","focusedIndex","setFocusedIndex","overflowY","setOverflowY","translateX","setTranslateX","translateY","setTranslateY","portal","setPortal","internalCoordinates","setInternalCoordinates","x","y","newContainer","setNewContainer","isInputFocused","styledComboBoxElementRef","contentRef","functions","values","browser","isTouch","areaProvider","shouldChangeColor","current","el","element","closest","Element","handleInputFocus","event","handleInputBlur","handleClick","contains","target","handleOpen","left","comboBoxLeft","top","comboBoxTop","height","getBoundingClientRect","scrollLeft","scrollTop","TOP","TOP_LEFT","TOP_RIGHT","includes","handleClose","document","addEventListener","removeEventListener","handleSetSelectedItem","itemToSelect","onSelectResult","Promise","then","shouldPreventSelection","handleClear","preventDefault","stopPropagation","currentContent","scrollHeight","maxHeightInPixels","body","handleKeyDown","e","key","children","length","newIndex","prevElement","tabIndex","newElement","focus","id","newSelectedItem","some","list","find","_ref2","value","String","replace","allItems","flatMap","hasImage","item","imageUrl","hasIcon","icons","parentWidth","parentElement","width","paddingWidth","imageWidth","iconWidth","prefixWidth","prefixTextWidth","text","Math","max","baseWidth","calculatedWidth","tmpMinWidth","tmpBodyMinWidth","itemWidth","BOTTOM_LEFT","difference","placeholderImageUrl","placeholderIcon","placeholderText","shouldShowRoundPlaceholderImage","selectedItemList","_ref3","handleHeaderClick","comboBoxGroups","map","createElement","groupName","imageBackground","isSelected","rightElement","subtext","suffixElement","textStyles","bodyStyles","initial","$browser","name","animate","opacity","$overflowY","$translateX","$translateY","exit","$maxHeight","$minWidth","style","$direction","$shouldUseCurrentItemWidth","transition","duration","ref","$shouldUseFullWidth","onClick","$isOpen","$isTouch","$isDisabled","$shouldChangeColor","$shouldShowBigImage","$shouldReduceOpacity","src","$shouldShowRoundImage","disabled","onChange","onBlur","onFocus","$shouldShowBorderLeft","displayName"],"sources":["../../../../src/components/combobox/ComboBox.tsx"],"sourcesContent":["import { useDevice, useFunctions, useValues } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n ChangeEventHandler,\n type CSSProperties,\n FC,\n FocusEventHandler,\n ReactHTML,\n type ReactNode,\n ReactPortal,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { BrowserName } from '../../types/chayns';\nimport { ComboBoxDirection } from '../../types/comboBox';\nimport { calculateContentWidth, getMaxHeightInPixels } from '../../utils/calculate';\nimport { getIsTouch } from '../../utils/environment';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport type { ContextMenuCoordinates } from '../context-menu/ContextMenu';\nimport Icon from '../icon/Icon';\nimport ComboBoxItem from './combobox-item/ComboBoxItem';\nimport {\n StyledComboBox,\n StyledComboBoxClearIconWrapper,\n StyledComboBoxHeader,\n StyledComboBoxIconWrapper,\n StyledComboBoxInput,\n StyledComboBoxPlaceholder,\n StyledComboBoxPlaceholderImage,\n StyledComboBoxPlaceholderText,\n StyledComboBoxPrefix,\n StyledComboBoxPrefixAndPlaceholderWrapper,\n StyledComboBoxTopic,\n StyledMotionComboBoxBody,\n} from './ComboBox.styles';\n\nexport interface IComboBoxItems {\n groupName?: string;\n list: Array<IComboBoxItem>;\n shouldShowRoundImage?: boolean;\n}\n\nexport interface ComboBoxTextStyles {\n tagName?: keyof ReactHTML;\n styles?: CSSProperties;\n}\n\nexport interface IComboBoxItem {\n icons?: string[];\n imageBackground?: CSSProperties['background'];\n imageUrl?: string;\n isDisabled?: boolean;\n rightElement?: ReactNode;\n subtext?: string;\n suffixElement?: ReactNode;\n text: string;\n value: string | number;\n textStyles?: ComboBoxTextStyles;\n}\n\nexport type ComboBoxProps = {\n bodyWidth?: number;\n /**\n * The element where the content of the `ComboBox` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * The direction in which the combobox should open.\n */\n direction?: ComboBoxDirection;\n /**\n * The value of the optional input.\n */\n inputValue?: string;\n /**\n * Whether the combobox should be disabled.\n */\n isDisabled?: boolean;\n /**\n * The list of the items that should be displayed.\n */\n lists: IComboBoxItems[];\n /**\n * The maximum height of the combobox content.\n */\n maxHeight?: CSSProperties['maxHeight'];\n /**\n * Function to be executed when the value of the optional input is changed.\n */\n onInputChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when the optional input lost its focus.\n */\n onInputBlur?: FocusEventHandler<HTMLInputElement> /**\n * Function to be executed when the optional input gets its focus.\n */;\n onInputFocus?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function that should be executed when an item is selected. If the function returns false, the item will not be selected.\n */\n onSelect?: (comboboxItem?: IComboBoxItem) => Promise<boolean> | boolean | void;\n /**\n * A text that should be displayed when no item is selected.\n */\n placeholder: string;\n /**\n * A prefix that should be displayed before the placeholder.\n */\n prefix?: string;\n /**\n * An item that should be preselected.\n */\n selectedItem?: IComboBoxItem;\n /**\n * If true, the images of the items are displayed in a bigger shape. This prop will automatically be set to true if the subtext of an item is given.\n */\n shouldShowBigImage?: boolean;\n /**\n * If true, a clear icon is displayed at the end of the combo box if an item is selected.\n */\n shouldShowClearIcon?: boolean;\n /**\n * If true, the images of the items are displayed in a round shape.\n */\n shouldShowRoundImage?: boolean;\n /**\n * Whether the width of the ComboBox should be the width of the current item.\n */\n shouldUseCurrentItemWidth?: boolean;\n /**\n * Whether the width of the 'ComboBox' should be the width of the parent or of the widest item.\n */\n shouldUseFullWidth?: boolean;\n};\n\nconst ComboBox: FC<ComboBoxProps> = ({\n bodyWidth,\n direction = ComboBoxDirection.BOTTOM,\n isDisabled = false,\n lists,\n maxHeight = '280px',\n onSelect,\n placeholder,\n prefix,\n container,\n selectedItem,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldShowRoundImage,\n onInputFocus,\n shouldUseFullWidth = false,\n onInputChange,\n shouldUseCurrentItemWidth = false,\n onInputBlur,\n inputValue,\n}) => {\n const [internalSelectedItem, setInternalSelectedItem] = useState<IComboBoxItem>();\n const [isAnimating, setIsAnimating] = useState(false);\n const [minWidth, setMinWidth] = useState<number | undefined>(undefined);\n const [bodyMinWidth, setBodyMinWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [overflowY, setOverflowY] = useState<CSSProperties['overflowY']>('hidden');\n const [translateX, setTranslateX] = useState<string>('0px');\n const [translateY, setTranslateY] = useState<string>('0px');\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 isInputFocused = useRef(false);\n\n const styledComboBoxElementRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const functions = useFunctions();\n const values = useValues();\n\n const { browser } = useDevice();\n\n const isTouch = getIsTouch();\n\n const areaProvider = useContext(AreaContext);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n useEffect(() => {\n if (styledComboBoxElementRef.current && !container) {\n const el = styledComboBoxElementRef.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 const handleInputFocus: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = true;\n onInputFocus?.(event);\n },\n [onInputFocus],\n );\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = false;\n onInputBlur?.(event);\n },\n [onInputBlur],\n );\n\n const handleClick = useCallback(\n (event: MouseEvent) => {\n if (\n styledComboBoxElementRef.current &&\n !styledComboBoxElementRef.current.contains(event.target as Node) &&\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n setIsAnimating(false);\n }\n },\n [styledComboBoxElementRef],\n );\n\n const handleOpen = useCallback(() => {\n if (styledComboBoxElementRef.current && newContainer) {\n const {\n left: comboBoxLeft,\n top: comboBoxTop,\n height,\n } = styledComboBoxElementRef.current.getBoundingClientRect();\n\n const { left, top } = newContainer.getBoundingClientRect();\n\n const x = comboBoxLeft - left + newContainer.scrollLeft;\n const y = comboBoxTop - top + newContainer.scrollTop;\n\n setInternalCoordinates({\n x,\n y: [\n ComboBoxDirection.TOP,\n ComboBoxDirection.TOP_LEFT,\n ComboBoxDirection.TOP_RIGHT,\n ].includes(direction)\n ? y\n : y + height,\n });\n\n setIsAnimating(true);\n }\n }, [newContainer, direction]);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\n\n /**\n * This function adds an event listener to the document to close the combobox when the user clicks outside of it\n */\n useEffect(() => {\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, [handleClick, styledComboBoxElementRef]);\n\n /**\n * This function sets the selected item\n */\n const handleSetSelectedItem = useCallback(\n (itemToSelect?: IComboBoxItem) => {\n if (typeof onSelect === 'function') {\n const onSelectResult = onSelect(itemToSelect);\n\n if (onSelectResult === false) {\n return;\n }\n\n if (onSelectResult instanceof Promise) {\n void onSelectResult.then((shouldPreventSelection) => {\n if (shouldPreventSelection) return;\n\n setInternalSelectedItem(itemToSelect);\n setIsAnimating(false);\n });\n\n return;\n }\n }\n\n setInternalSelectedItem(itemToSelect);\n setIsAnimating(false);\n },\n [onSelect],\n );\n\n const handleClear = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n handleSetSelectedItem(undefined);\n },\n [handleSetSelectedItem],\n );\n\n useEffect(() => {\n const currentContent = contentRef.current;\n\n if (portal && isAnimating && currentContent) {\n const scrollHeight = currentContent.scrollHeight ?? 0;\n\n const maxHeightInPixels = getMaxHeightInPixels(\n maxHeight,\n styledComboBoxElementRef.current ?? document.body,\n );\n\n setOverflowY(scrollHeight > maxHeightInPixels ? 'scroll' : 'hidden');\n }\n }, [isAnimating, maxHeight, portal]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating) {\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const children = contentRef.current?.children;\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex + (e.key === 'ArrowUp' ? -1 : 1) + children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n const element = contentRef.current?.children[focusedIndex];\n\n if (!element) {\n return;\n }\n\n const { id } = element;\n\n let newSelectedItem: IComboBoxItem | undefined;\n\n lists.some((list) => {\n newSelectedItem = list.list.find(\n ({ value }) => String(value) === id.replace('combobox-item__', ''),\n );\n return !!newSelectedItem;\n });\n\n if (!newSelectedItem) {\n return;\n }\n\n handleSetSelectedItem(newSelectedItem);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [focusedIndex, handleSetSelectedItem, isAnimating, lists]);\n\n /**\n * This function calculates the greatest width\n */\n useEffect(() => {\n const allItems = lists.flatMap((list) => list.list);\n const hasImage = [selectedItem, ...allItems].some((item) => item?.imageUrl);\n const hasIcon = [selectedItem, ...allItems].some((item) => item?.icons);\n\n const parentWidth =\n styledComboBoxElementRef.current?.parentElement?.getBoundingClientRect().width ?? 0;\n\n const paddingWidth = 20 + 2 + 40 + 40; // padding + border + arrow icon + optional clear icon\n const imageWidth = hasImage ? 32 : 0; // image width + gap if images present\n const iconWidth = hasIcon ? 40 : 0; // icon width + gap if icons present\n\n let prefixWidth = 0;\n\n if (prefix) {\n const prefixTextWidth =\n calculateContentWidth([{ text: prefix, value: 'prefix' }], functions, values) + 5;\n\n prefixWidth = Math.max(prefixTextWidth, 32);\n }\n\n const baseWidth = calculateContentWidth(\n [\n ...allItems,\n { text: placeholder, value: 'placeholder' },\n ...(selectedItem ? [selectedItem] : []),\n ],\n functions,\n values,\n );\n\n const calculatedWidth = baseWidth + paddingWidth + imageWidth + iconWidth + prefixWidth;\n\n let tmpMinWidth = calculatedWidth;\n let tmpBodyMinWidth = calculatedWidth;\n\n // Full width settings\n if (shouldUseFullWidth) {\n tmpMinWidth = parentWidth;\n\n tmpBodyMinWidth =\n parentWidth < calculatedWidth - 20 ? calculatedWidth - 20 : parentWidth;\n }\n\n // Current item width settings\n else if (shouldUseCurrentItemWidth && internalSelectedItem) {\n const itemWidth =\n calculateContentWidth([internalSelectedItem], functions, values) +\n paddingWidth +\n imageWidth +\n iconWidth +\n prefixWidth;\n\n tmpMinWidth = itemWidth;\n\n tmpBodyMinWidth = itemWidth < calculatedWidth - 20 ? calculatedWidth - 20 : itemWidth;\n }\n\n if (tmpMinWidth > parentWidth) {\n tmpMinWidth = parentWidth;\n }\n\n if (tmpBodyMinWidth > parentWidth) {\n tmpBodyMinWidth = parentWidth;\n }\n\n setMinWidth(tmpMinWidth);\n setBodyMinWidth(shouldUseCurrentItemWidth ? tmpMinWidth : tmpBodyMinWidth);\n }, [\n lists,\n placeholder,\n shouldUseFullWidth,\n shouldUseCurrentItemWidth,\n internalSelectedItem,\n prefix,\n selectedItem,\n functions,\n values,\n ]);\n\n /**\n * This function sets the external selected item\n */\n useEffect(() => {\n setIsAnimating(false);\n setInternalSelectedItem(selectedItem);\n }, [selectedItem]);\n\n useEffect(() => {\n if (\n [ComboBoxDirection.BOTTOM_LEFT, ComboBoxDirection.TOP_LEFT].includes(direction) &&\n typeof bodyWidth === 'number' &&\n typeof minWidth === 'number'\n ) {\n const difference = minWidth - bodyWidth;\n\n setTranslateX(`${difference}px`);\n } else {\n setTranslateX('0px');\n }\n }, [bodyWidth, direction, minWidth]);\n\n const placeholderImageUrl = useMemo(() => {\n if (selectedItem) {\n return selectedItem.imageUrl;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.imageUrl;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n const placeholderIcon = useMemo(() => {\n if (selectedItem) {\n return selectedItem.icons;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.icons;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n /**\n * This function resets the placeholder\n */\n const placeholderText = useMemo(() => {\n let text = placeholder;\n\n if (selectedItem) {\n text = selectedItem.text;\n } else if (internalSelectedItem) {\n text = internalSelectedItem.text;\n }\n\n return text;\n }, [internalSelectedItem, placeholder, selectedItem]);\n\n const shouldShowRoundPlaceholderImage = useMemo(() => {\n const selectedItemList = lists.find((list) =>\n list.list.some(\n ({ value }) => value === (selectedItem?.value ?? internalSelectedItem?.value),\n ),\n );\n\n return selectedItemList?.shouldShowRoundImage ?? shouldShowRoundImage;\n }, [internalSelectedItem?.value, lists, selectedItem?.value, shouldShowRoundImage]);\n\n /**\n * This function opens the content of the combobox\n */\n const handleHeaderClick = useCallback(() => {\n if (!isDisabled && !isInputFocused.current) {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n }, [handleClose, handleOpen, isAnimating, isDisabled]);\n\n const comboBoxGroups = useMemo(\n () =>\n lists.map((list) => (\n <div key={list.groupName ?? 'default-group'}>\n {list.groupName && lists.length > 1 && (\n <StyledComboBoxTopic>{list.groupName}</StyledComboBoxTopic>\n )}\n {list.list.map((item) => (\n // ToDo: Cleanup this - item should be given as a prop to avoid full spreading\n <ComboBoxItem\n icons={item.icons}\n id={item.value}\n imageBackground={item.imageBackground}\n imageUrl={item.imageUrl}\n isDisabled={item.isDisabled}\n isSelected={selectedItem ? item.value === selectedItem.value : false}\n key={item.value}\n onSelect={handleSetSelectedItem}\n rightElement={item.rightElement}\n shouldShowBigImage={shouldShowBigImage}\n shouldShowRoundImage={list.shouldShowRoundImage ?? shouldShowRoundImage}\n subtext={item.subtext}\n suffixElement={item.suffixElement}\n text={item.text}\n value={item.value}\n textStyles={item.textStyles}\n />\n ))}\n </div>\n )),\n [handleSetSelectedItem, lists, selectedItem, shouldShowBigImage, shouldShowRoundImage],\n );\n\n const bodyStyles = useMemo(\n () => ({ left: internalCoordinates.x, top: internalCoordinates.y }),\n [internalCoordinates.x, internalCoordinates.y],\n );\n\n useEffect(() => {\n if (\n [\n ComboBoxDirection.TOP,\n ComboBoxDirection.TOP_LEFT,\n ComboBoxDirection.TOP_RIGHT,\n ].includes(direction)\n ) {\n setTranslateY('-100%');\n } else {\n setTranslateY('0px');\n }\n }, [direction]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isAnimating && (\n <StyledMotionComboBoxBody\n $browser={browser?.name as BrowserName}\n animate={{ height: 'fit-content', opacity: 1 }}\n $overflowY={overflowY}\n $translateX={translateX}\n $translateY={translateY}\n initial={{ height: 0, opacity: 0 }}\n exit={{ height: 0, opacity: 0 }}\n $maxHeight={maxHeight}\n $minWidth={bodyWidth ?? bodyMinWidth}\n style={bodyStyles}\n $direction={direction}\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n transition={{ duration: 0.2 }}\n tabIndex={0}\n ref={contentRef}\n >\n {comboBoxGroups}\n </StyledMotionComboBoxBody>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n bodyWidth,\n bodyMinWidth,\n bodyStyles,\n browser?.name,\n comboBoxGroups,\n newContainer,\n direction,\n isAnimating,\n maxHeight,\n minWidth,\n overflowY,\n shouldUseCurrentItemWidth,\n translateX,\n translateY,\n ]);\n\n return useMemo(\n () => (\n <StyledComboBox\n ref={styledComboBoxElementRef}\n $minWidth={minWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n >\n <StyledComboBoxHeader\n $direction={direction}\n onClick={handleHeaderClick}\n $isOpen={isAnimating}\n $isTouch={isTouch}\n $isDisabled={isDisabled}\n $shouldChangeColor={shouldChangeColor}\n $shouldShowBigImage={shouldShowBigImage}\n >\n <StyledComboBoxPrefixAndPlaceholderWrapper>\n {prefix && <StyledComboBoxPrefix>{prefix}</StyledComboBoxPrefix>}\n <StyledComboBoxPlaceholder\n $shouldReduceOpacity={!selectedItem && !internalSelectedItem}\n >\n {placeholderImageUrl && (\n <StyledComboBoxPlaceholderImage\n src={placeholderImageUrl}\n $shouldShowBigImage={shouldShowBigImage}\n $shouldShowRoundImage={shouldShowRoundPlaceholderImage}\n />\n )}\n {placeholderIcon && <Icon icons={placeholderIcon} />}\n {typeof inputValue === 'string' ? (\n <StyledComboBoxInput\n disabled={isDisabled}\n value={inputValue}\n onChange={onInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n placeholder={placeholderText}\n />\n ) : (\n <StyledComboBoxPlaceholderText>\n {placeholderText}\n </StyledComboBoxPlaceholderText>\n )}\n {internalSelectedItem &&\n internalSelectedItem.suffixElement &&\n internalSelectedItem.suffixElement}\n </StyledComboBoxPlaceholder>\n </StyledComboBoxPrefixAndPlaceholderWrapper>\n {shouldShowClearIcon && internalSelectedItem && (\n <StyledComboBoxClearIconWrapper onClick={handleClear}>\n <Icon icons={['fa fa-times']} />\n </StyledComboBoxClearIconWrapper>\n )}\n <StyledComboBoxIconWrapper\n $shouldShowBorderLeft={\n shouldShowClearIcon === true && internalSelectedItem !== undefined\n }\n >\n <Icon icons={['fa fa-chevron-down']} />\n </StyledComboBoxIconWrapper>\n </StyledComboBoxHeader>\n {portal}\n </StyledComboBox>\n ),\n [\n minWidth,\n shouldUseFullWidth,\n shouldUseCurrentItemWidth,\n direction,\n handleHeaderClick,\n isAnimating,\n isTouch,\n isDisabled,\n shouldChangeColor,\n shouldShowBigImage,\n prefix,\n selectedItem,\n internalSelectedItem,\n placeholderImageUrl,\n shouldShowRoundPlaceholderImage,\n placeholderIcon,\n inputValue,\n onInputChange,\n handleInputBlur,\n handleInputFocus,\n placeholderText,\n shouldShowClearIcon,\n handleClear,\n portal,\n ],\n );\n};\n\nComboBox.displayName = 'ComboBox';\n\nexport default ComboBox;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ComboBox.js","names":["useDevice","useFunctions","useValues","AnimatePresence","React","useCallback","useContext","useEffect","useMemo","useRef","useState","createPortal","ComboBoxDirection","calculateContentWidth","getMaxHeightInPixels","getIsTouch","AreaContext","Icon","ComboBoxItem","StyledComboBox","StyledComboBoxClearIconWrapper","StyledComboBoxHeader","StyledComboBoxIconWrapper","StyledComboBoxInput","StyledComboBoxPlaceholder","StyledComboBoxPlaceholderImage","StyledComboBoxPlaceholderText","StyledComboBoxPrefix","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxTopic","StyledMotionComboBoxBody","ComboBox","_ref","bodyWidth","direction","BOTTOM","isDisabled","lists","maxHeight","onSelect","placeholder","prefix","container","selectedItem","shouldShowBigImage","shouldShowClearIcon","shouldShowRoundImage","onInputFocus","shouldUseFullWidth","onInputChange","shouldUseCurrentItemWidth","onInputBlur","inputValue","internalSelectedItem","setInternalSelectedItem","isAnimating","setIsAnimating","minWidth","setMinWidth","undefined","bodyMinWidth","setBodyMinWidth","focusedIndex","setFocusedIndex","overflowY","setOverflowY","translateX","setTranslateX","translateY","setTranslateY","portal","setPortal","internalCoordinates","setInternalCoordinates","x","y","newContainer","setNewContainer","isInputFocused","styledComboBoxElementRef","contentRef","functions","values","browser","isTouch","areaProvider","shouldChangeColor","shouldDisableActions","combinedLists","flatMap","list","length","some","item","value","current","el","element","closest","Element","handleInputFocus","event","handleInputBlur","handleClick","contains","target","handleOpen","left","comboBoxLeft","top","comboBoxTop","height","getBoundingClientRect","scrollLeft","scrollTop","TOP","TOP_LEFT","TOP_RIGHT","includes","handleClose","document","addEventListener","removeEventListener","handleSetSelectedItem","itemToSelect","onSelectResult","Promise","then","shouldPreventSelection","handleClear","preventDefault","stopPropagation","currentContent","scrollHeight","maxHeightInPixels","body","handleKeyDown","e","key","children","newIndex","prevElement","tabIndex","newElement","focus","id","newSelectedItem","find","_ref2","String","replace","allItems","hasImage","imageUrl","hasIcon","icons","parentWidth","parentElement","width","paddingWidth","imageWidth","iconWidth","prefixWidth","prefixTextWidth","text","Math","max","baseWidth","calculatedWidth","tmpMinWidth","tmpBodyMinWidth","itemWidth","BOTTOM_LEFT","difference","placeholderImageUrl","placeholderIcon","placeholderText","shouldShowRoundPlaceholderImage","selectedItemList","_ref3","handleHeaderClick","comboBoxGroups","map","createElement","groupName","imageBackground","isSelected","rightElement","subtext","suffixElement","textStyles","bodyStyles","initial","$browser","name","animate","opacity","$overflowY","$translateX","$translateY","exit","$maxHeight","$minWidth","style","$direction","$shouldUseCurrentItemWidth","transition","duration","ref","$shouldUseFullWidth","onClick","$isOpen","$isTouch","$isDisabled","$shouldChangeColor","$shouldShowBigImage","$shouldReduceOpacity","src","$shouldShowRoundImage","disabled","onChange","onBlur","onFocus","$shouldShowBorderLeft","displayName"],"sources":["../../../../src/components/combobox/ComboBox.tsx"],"sourcesContent":["import { useDevice, useFunctions, useValues } from 'chayns-api';\nimport { AnimatePresence } from 'motion/react';\nimport React, {\n ChangeEventHandler,\n type CSSProperties,\n FC,\n FocusEventHandler,\n ReactHTML,\n type ReactNode,\n ReactPortal,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { BrowserName } from '../../types/chayns';\nimport { ComboBoxDirection } from '../../types/comboBox';\nimport { calculateContentWidth, getMaxHeightInPixels } from '../../utils/calculate';\nimport { getIsTouch } from '../../utils/environment';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport type { ContextMenuCoordinates } from '../context-menu/ContextMenu';\nimport Icon from '../icon/Icon';\nimport ComboBoxItem from './combobox-item/ComboBoxItem';\nimport {\n StyledComboBox,\n StyledComboBoxClearIconWrapper,\n StyledComboBoxHeader,\n StyledComboBoxIconWrapper,\n StyledComboBoxInput,\n StyledComboBoxPlaceholder,\n StyledComboBoxPlaceholderImage,\n StyledComboBoxPlaceholderText,\n StyledComboBoxPrefix,\n StyledComboBoxPrefixAndPlaceholderWrapper,\n StyledComboBoxTopic,\n StyledMotionComboBoxBody,\n} from './ComboBox.styles';\n\nexport interface IComboBoxItems {\n groupName?: string;\n list: Array<IComboBoxItem>;\n shouldShowRoundImage?: boolean;\n}\n\nexport interface ComboBoxTextStyles {\n tagName?: keyof ReactHTML;\n styles?: CSSProperties;\n}\n\nexport interface IComboBoxItem {\n icons?: string[];\n imageBackground?: CSSProperties['background'];\n imageUrl?: string;\n isDisabled?: boolean;\n rightElement?: ReactNode;\n subtext?: string;\n suffixElement?: ReactNode;\n text: string;\n value: string | number;\n textStyles?: ComboBoxTextStyles;\n}\n\nexport type ComboBoxProps = {\n bodyWidth?: number;\n /**\n * The element where the content of the `ComboBox` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * The direction in which the combobox should open.\n */\n direction?: ComboBoxDirection;\n /**\n * The value of the optional input.\n */\n inputValue?: string;\n /**\n * Whether the combobox should be disabled.\n */\n isDisabled?: boolean;\n /**\n * The list of the items that should be displayed.\n */\n lists: IComboBoxItems[];\n /**\n * The maximum height of the combobox content.\n */\n maxHeight?: CSSProperties['maxHeight'];\n /**\n * Function to be executed when the value of the optional input is changed.\n */\n onInputChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when the optional input lost its focus.\n */\n onInputBlur?: FocusEventHandler<HTMLInputElement> /**\n * Function to be executed when the optional input gets its focus.\n */;\n onInputFocus?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function that should be executed when an item is selected. If the function returns false, the item will not be selected.\n */\n onSelect?: (comboboxItem?: IComboBoxItem) => Promise<boolean> | boolean | void;\n /**\n * A text that should be displayed when no item is selected.\n */\n placeholder: string;\n /**\n * A prefix that should be displayed before the placeholder.\n */\n prefix?: string;\n /**\n * An item that should be preselected.\n */\n selectedItem?: IComboBoxItem;\n /**\n * If true, the images of the items are displayed in a bigger shape. This prop will automatically be set to true if the subtext of an item is given.\n */\n shouldShowBigImage?: boolean;\n /**\n * If true, a clear icon is displayed at the end of the combo box if an item is selected.\n */\n shouldShowClearIcon?: boolean;\n /**\n * If true, the images of the items are displayed in a round shape.\n */\n shouldShowRoundImage?: boolean;\n /**\n * Whether the width of the ComboBox should be the width of the current item.\n */\n shouldUseCurrentItemWidth?: boolean;\n /**\n * Whether the width of the 'ComboBox' should be the width of the parent or of the widest item.\n */\n shouldUseFullWidth?: boolean;\n};\n\nconst ComboBox: FC<ComboBoxProps> = ({\n bodyWidth,\n direction = ComboBoxDirection.BOTTOM,\n isDisabled = false,\n lists,\n maxHeight = '280px',\n onSelect,\n placeholder,\n prefix,\n container,\n selectedItem,\n shouldShowBigImage,\n shouldShowClearIcon,\n shouldShowRoundImage,\n onInputFocus,\n shouldUseFullWidth = false,\n onInputChange,\n shouldUseCurrentItemWidth = false,\n onInputBlur,\n inputValue,\n}) => {\n const [internalSelectedItem, setInternalSelectedItem] = useState<IComboBoxItem>();\n const [isAnimating, setIsAnimating] = useState(false);\n const [minWidth, setMinWidth] = useState<number | undefined>(undefined);\n const [bodyMinWidth, setBodyMinWidth] = useState(0);\n const [focusedIndex, setFocusedIndex] = useState<number | null>(null);\n const [overflowY, setOverflowY] = useState<CSSProperties['overflowY']>('hidden');\n const [translateX, setTranslateX] = useState<string>('0px');\n const [translateY, setTranslateY] = useState<string>('0px');\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 isInputFocused = useRef(false);\n\n const styledComboBoxElementRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const functions = useFunctions();\n const values = useValues();\n\n const { browser } = useDevice();\n\n const isTouch = getIsTouch();\n\n const areaProvider = useContext(AreaContext);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n const shouldDisableActions = useMemo(() => {\n if (!selectedItem) {\n return false;\n }\n\n const combinedLists = lists.flatMap((list) => list.list);\n\n return (\n combinedLists.length === 1 &&\n combinedLists.some((item) => item.value === selectedItem.value)\n );\n }, [lists, selectedItem]);\n\n useEffect(() => {\n if (styledComboBoxElementRef.current && !container) {\n const el = styledComboBoxElementRef.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 const handleInputFocus: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = true;\n onInputFocus?.(event);\n },\n [onInputFocus],\n );\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n isInputFocused.current = false;\n onInputBlur?.(event);\n },\n [onInputBlur],\n );\n\n const handleClick = useCallback(\n (event: MouseEvent) => {\n if (\n styledComboBoxElementRef.current &&\n !styledComboBoxElementRef.current.contains(event.target as Node) &&\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n setIsAnimating(false);\n }\n },\n [styledComboBoxElementRef],\n );\n\n const handleOpen = useCallback(() => {\n if (shouldDisableActions) {\n return;\n }\n\n if (styledComboBoxElementRef.current && newContainer) {\n const {\n left: comboBoxLeft,\n top: comboBoxTop,\n height,\n } = styledComboBoxElementRef.current.getBoundingClientRect();\n\n const { left, top } = newContainer.getBoundingClientRect();\n\n const x = comboBoxLeft - left + newContainer.scrollLeft;\n const y = comboBoxTop - top + newContainer.scrollTop;\n\n setInternalCoordinates({\n x,\n y: [\n ComboBoxDirection.TOP,\n ComboBoxDirection.TOP_LEFT,\n ComboBoxDirection.TOP_RIGHT,\n ].includes(direction)\n ? y\n : y + height,\n });\n\n setIsAnimating(true);\n }\n }, [shouldDisableActions, newContainer, direction]);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\n\n /**\n * This function adds an event listener to the document to close the combobox when the user clicks outside of it\n */\n useEffect(() => {\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, [handleClick, styledComboBoxElementRef]);\n\n /**\n * This function sets the selected item\n */\n const handleSetSelectedItem = useCallback(\n (itemToSelect?: IComboBoxItem) => {\n if (typeof onSelect === 'function') {\n const onSelectResult = onSelect(itemToSelect);\n\n if (onSelectResult === false) {\n return;\n }\n\n if (onSelectResult instanceof Promise) {\n void onSelectResult.then((shouldPreventSelection) => {\n if (shouldPreventSelection) return;\n\n setInternalSelectedItem(itemToSelect);\n setIsAnimating(false);\n });\n\n return;\n }\n }\n\n setInternalSelectedItem(itemToSelect);\n setIsAnimating(false);\n },\n [onSelect],\n );\n\n const handleClear = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n handleSetSelectedItem(undefined);\n },\n [handleSetSelectedItem],\n );\n\n useEffect(() => {\n const currentContent = contentRef.current;\n\n if (portal && isAnimating && currentContent) {\n const scrollHeight = currentContent.scrollHeight ?? 0;\n\n const maxHeightInPixels = getMaxHeightInPixels(\n maxHeight,\n styledComboBoxElementRef.current ?? document.body,\n );\n\n setOverflowY(scrollHeight > maxHeightInPixels ? 'scroll' : 'hidden');\n }\n }, [isAnimating, maxHeight, portal]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating) {\n return;\n }\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n const children = contentRef.current?.children;\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex + (e.key === 'ArrowUp' ? -1 : 1) + children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n const element = contentRef.current?.children[focusedIndex];\n\n if (!element) {\n return;\n }\n\n const { id } = element;\n\n let newSelectedItem: IComboBoxItem | undefined;\n\n lists.some((list) => {\n newSelectedItem = list.list.find(\n ({ value }) => String(value) === id.replace('combobox-item__', ''),\n );\n return !!newSelectedItem;\n });\n\n if (!newSelectedItem) {\n return;\n }\n\n handleSetSelectedItem(newSelectedItem);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [focusedIndex, handleSetSelectedItem, isAnimating, lists]);\n\n /**\n * This function calculates the greatest width\n */\n useEffect(() => {\n const allItems = lists.flatMap((list) => list.list);\n const hasImage = [selectedItem, ...allItems].some((item) => item?.imageUrl);\n const hasIcon = [selectedItem, ...allItems].some((item) => item?.icons);\n\n const parentWidth =\n styledComboBoxElementRef.current?.parentElement?.getBoundingClientRect().width ?? 0;\n\n const paddingWidth = 20 + 2 + 40 + 40; // padding + border + arrow icon + optional clear icon\n const imageWidth = hasImage ? 32 : 0; // image width + gap if images present\n const iconWidth = hasIcon ? 40 : 0; // icon width + gap if icons present\n\n let prefixWidth = 0;\n\n if (prefix) {\n const prefixTextWidth =\n calculateContentWidth([{ text: prefix, value: 'prefix' }], functions, values) + 5;\n\n prefixWidth = Math.max(prefixTextWidth, 32);\n }\n\n const baseWidth = calculateContentWidth(\n [\n ...allItems,\n { text: placeholder, value: 'placeholder' },\n ...(selectedItem ? [selectedItem] : []),\n ],\n functions,\n values,\n );\n\n const calculatedWidth = baseWidth + paddingWidth + imageWidth + iconWidth + prefixWidth;\n\n let tmpMinWidth = calculatedWidth;\n let tmpBodyMinWidth = calculatedWidth;\n\n // Full width settings\n if (shouldUseFullWidth) {\n tmpMinWidth = parentWidth;\n\n tmpBodyMinWidth =\n parentWidth < calculatedWidth - 20 ? calculatedWidth - 20 : parentWidth;\n }\n\n // Current item width settings\n else if (shouldUseCurrentItemWidth && internalSelectedItem) {\n const itemWidth =\n calculateContentWidth([internalSelectedItem], functions, values) +\n paddingWidth +\n imageWidth +\n iconWidth +\n prefixWidth;\n\n tmpMinWidth = itemWidth;\n\n tmpBodyMinWidth = itemWidth < calculatedWidth - 20 ? calculatedWidth - 20 : itemWidth;\n }\n\n if (tmpMinWidth > parentWidth) {\n tmpMinWidth = parentWidth;\n }\n\n if (tmpBodyMinWidth > parentWidth) {\n tmpBodyMinWidth = parentWidth;\n }\n\n setMinWidth(tmpMinWidth);\n setBodyMinWidth(shouldUseCurrentItemWidth ? tmpMinWidth : tmpBodyMinWidth);\n }, [\n lists,\n placeholder,\n shouldUseFullWidth,\n shouldUseCurrentItemWidth,\n internalSelectedItem,\n prefix,\n selectedItem,\n functions,\n values,\n ]);\n\n /**\n * This function sets the external selected item\n */\n useEffect(() => {\n setIsAnimating(false);\n setInternalSelectedItem(selectedItem);\n }, [selectedItem]);\n\n useEffect(() => {\n if (\n [ComboBoxDirection.BOTTOM_LEFT, ComboBoxDirection.TOP_LEFT].includes(direction) &&\n typeof bodyWidth === 'number' &&\n typeof minWidth === 'number'\n ) {\n const difference = minWidth - bodyWidth;\n\n setTranslateX(`${difference}px`);\n } else {\n setTranslateX('0px');\n }\n }, [bodyWidth, direction, minWidth]);\n\n const placeholderImageUrl = useMemo(() => {\n if (selectedItem) {\n return selectedItem.imageUrl;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.imageUrl;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n const placeholderIcon = useMemo(() => {\n if (selectedItem) {\n return selectedItem.icons;\n }\n\n if (internalSelectedItem) {\n return internalSelectedItem.icons;\n }\n\n return undefined;\n }, [internalSelectedItem, selectedItem]);\n\n /**\n * This function resets the placeholder\n */\n const placeholderText = useMemo(() => {\n let text = placeholder;\n\n if (selectedItem) {\n text = selectedItem.text;\n } else if (internalSelectedItem) {\n text = internalSelectedItem.text;\n }\n\n return text;\n }, [internalSelectedItem, placeholder, selectedItem]);\n\n const shouldShowRoundPlaceholderImage = useMemo(() => {\n const selectedItemList = lists.find((list) =>\n list.list.some(\n ({ value }) => value === (selectedItem?.value ?? internalSelectedItem?.value),\n ),\n );\n\n return selectedItemList?.shouldShowRoundImage ?? shouldShowRoundImage;\n }, [internalSelectedItem?.value, lists, selectedItem?.value, shouldShowRoundImage]);\n\n /**\n * This function opens the content of the combobox\n */\n const handleHeaderClick = useCallback(() => {\n if (!isDisabled && !isInputFocused.current) {\n if (isAnimating) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n }, [handleClose, handleOpen, isAnimating, isDisabled]);\n\n const comboBoxGroups = useMemo(\n () =>\n lists.map((list) => (\n <div key={list.groupName ?? 'default-group'}>\n {list.groupName && lists.length > 1 && (\n <StyledComboBoxTopic>{list.groupName}</StyledComboBoxTopic>\n )}\n {list.list.map((item) => (\n // ToDo: Cleanup this - item should be given as a prop to avoid full spreading\n <ComboBoxItem\n icons={item.icons}\n id={item.value}\n imageBackground={item.imageBackground}\n imageUrl={item.imageUrl}\n isDisabled={item.isDisabled}\n isSelected={selectedItem ? item.value === selectedItem.value : false}\n key={item.value}\n onSelect={handleSetSelectedItem}\n rightElement={item.rightElement}\n shouldShowBigImage={shouldShowBigImage}\n shouldShowRoundImage={list.shouldShowRoundImage ?? shouldShowRoundImage}\n subtext={item.subtext}\n suffixElement={item.suffixElement}\n text={item.text}\n value={item.value}\n textStyles={item.textStyles}\n />\n ))}\n </div>\n )),\n [handleSetSelectedItem, lists, selectedItem, shouldShowBigImage, shouldShowRoundImage],\n );\n\n const bodyStyles = useMemo(\n () => ({ left: internalCoordinates.x, top: internalCoordinates.y }),\n [internalCoordinates.x, internalCoordinates.y],\n );\n\n useEffect(() => {\n if (\n [\n ComboBoxDirection.TOP,\n ComboBoxDirection.TOP_LEFT,\n ComboBoxDirection.TOP_RIGHT,\n ].includes(direction)\n ) {\n setTranslateY('-100%');\n } else {\n setTranslateY('0px');\n }\n }, [direction]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isAnimating && (\n <StyledMotionComboBoxBody\n $browser={browser?.name as BrowserName}\n animate={{ height: 'fit-content', opacity: 1 }}\n $overflowY={overflowY}\n $translateX={translateX}\n $translateY={translateY}\n initial={{ height: 0, opacity: 0 }}\n exit={{ height: 0, opacity: 0 }}\n $maxHeight={maxHeight}\n $minWidth={bodyWidth ?? bodyMinWidth}\n style={bodyStyles}\n $direction={direction}\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n transition={{ duration: 0.2 }}\n tabIndex={0}\n ref={contentRef}\n >\n {comboBoxGroups}\n </StyledMotionComboBoxBody>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n bodyWidth,\n bodyMinWidth,\n bodyStyles,\n browser?.name,\n comboBoxGroups,\n newContainer,\n direction,\n isAnimating,\n maxHeight,\n minWidth,\n overflowY,\n shouldUseCurrentItemWidth,\n translateX,\n translateY,\n ]);\n\n return useMemo(\n () => (\n <StyledComboBox\n ref={styledComboBoxElementRef}\n $minWidth={minWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n >\n <StyledComboBoxHeader\n $direction={direction}\n onClick={handleHeaderClick}\n $isOpen={isAnimating}\n $isTouch={isTouch}\n $isDisabled={isDisabled}\n $shouldChangeColor={shouldChangeColor}\n $shouldShowBigImage={shouldShowBigImage}\n >\n <StyledComboBoxPrefixAndPlaceholderWrapper>\n {prefix && <StyledComboBoxPrefix>{prefix}</StyledComboBoxPrefix>}\n <StyledComboBoxPlaceholder\n $shouldReduceOpacity={!selectedItem && !internalSelectedItem}\n >\n {placeholderImageUrl && (\n <StyledComboBoxPlaceholderImage\n src={placeholderImageUrl}\n $shouldShowBigImage={shouldShowBigImage}\n $shouldShowRoundImage={shouldShowRoundPlaceholderImage}\n />\n )}\n {placeholderIcon && <Icon icons={placeholderIcon} />}\n {typeof inputValue === 'string' ? (\n <StyledComboBoxInput\n disabled={isDisabled}\n value={inputValue}\n onChange={onInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n placeholder={placeholderText}\n />\n ) : (\n <StyledComboBoxPlaceholderText>\n {placeholderText}\n </StyledComboBoxPlaceholderText>\n )}\n {internalSelectedItem &&\n internalSelectedItem.suffixElement &&\n internalSelectedItem.suffixElement}\n </StyledComboBoxPlaceholder>\n </StyledComboBoxPrefixAndPlaceholderWrapper>\n {shouldShowClearIcon && internalSelectedItem && (\n <StyledComboBoxClearIconWrapper onClick={handleClear}>\n <Icon icons={['fa fa-times']} />\n </StyledComboBoxClearIconWrapper>\n )}\n {!shouldDisableActions && (\n <StyledComboBoxIconWrapper\n $shouldShowBorderLeft={\n shouldShowClearIcon === true && internalSelectedItem !== undefined\n }\n >\n <Icon icons={['fa fa-chevron-down']} />\n </StyledComboBoxIconWrapper>\n )}\n </StyledComboBoxHeader>\n {portal}\n </StyledComboBox>\n ),\n [\n minWidth,\n shouldUseFullWidth,\n shouldUseCurrentItemWidth,\n direction,\n handleHeaderClick,\n isAnimating,\n isTouch,\n isDisabled,\n shouldChangeColor,\n shouldShowBigImage,\n prefix,\n selectedItem,\n internalSelectedItem,\n placeholderImageUrl,\n shouldShowRoundPlaceholderImage,\n placeholderIcon,\n inputValue,\n onInputChange,\n handleInputBlur,\n handleInputFocus,\n placeholderText,\n shouldShowClearIcon,\n handleClear,\n shouldDisableActions,\n portal,\n ],\n );\n};\n\nComboBox.displayName = 'ComboBox';\n\nexport default ComboBox;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/core",
3
- "version": "5.0.0-beta.1078",
3
+ "version": "5.0.0-beta.1080",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -86,5 +86,5 @@
86
86
  "publishConfig": {
87
87
  "access": "public"
88
88
  },
89
- "gitHead": "0934c6a4413e0d4f47d7b5669ee10b65c62abcdb"
89
+ "gitHead": "9b13f855c84b0dc630cf603fb19ee1b73a9343c2"
90
90
  }