@chayns-components/core 5.0.0-beta.1193 → 5.0.0-beta.1195
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/button/Button.js.map +1 -1
- package/lib/cjs/components/button/Button.styles.js +2 -1
- package/lib/cjs/components/button/Button.styles.js.map +1 -1
- package/lib/cjs/components/combobox/ComboBox.js +13 -7
- package/lib/cjs/components/combobox/ComboBox.js.map +1 -1
- package/lib/cjs/components/slider-button/SliderButton.js +46 -7
- package/lib/cjs/components/slider-button/SliderButton.js.map +1 -1
- package/lib/cjs/components/slider-button/SliderButton.styles.js +4 -7
- package/lib/cjs/components/slider-button/SliderButton.styles.js.map +1 -1
- package/lib/cjs/utils/calculate.js +1 -4
- package/lib/cjs/utils/calculate.js.map +1 -1
- package/lib/esm/components/button/Button.js.map +1 -1
- package/lib/esm/components/button/Button.styles.js +2 -1
- package/lib/esm/components/button/Button.styles.js.map +1 -1
- package/lib/esm/components/combobox/ComboBox.js +13 -7
- package/lib/esm/components/combobox/ComboBox.js.map +1 -1
- package/lib/esm/components/slider-button/SliderButton.js +46 -7
- package/lib/esm/components/slider-button/SliderButton.js.map +1 -1
- package/lib/esm/components/slider-button/SliderButton.styles.js +4 -7
- package/lib/esm/components/slider-button/SliderButton.styles.js.map +1 -1
- package/lib/esm/utils/calculate.js +1 -4
- package/lib/esm/utils/calculate.js.map +1 -1
- package/lib/types/components/button/Button.d.ts +1 -1
- package/lib/types/components/combobox/ComboBox.d.ts +4 -0
- package/lib/types/components/slider-button/SliderButton.d.ts +10 -6
- package/lib/types/components/slider-button/SliderButton.styles.d.ts +1 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["_clsx","_interopRequireDefault","require","_react","_react2","_interopRequireWildcard","_styledComponents","_Icon","_Button","_WaitCursor","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Button","children","className","icon","isDisabled","isSecondary","onClick","shouldShowWaitCursor","shouldStopPropagation","shouldShowAsSelectButton","shouldShowTextAsRobotoMedium","handleClick","event","stopPropagation","buttonClasses","clsx","theme","useTheme","iconColor","useMemo","text","buttonDesign","buttonColor","buttonBackgroundColor","backgroundColor","color","tapStyles","opacity","hoverStyles","createElement","StyledMotionButton","$shouldShowTextAsRobotoMedium","$shouldShowAsSelectButton","$shouldShowWaitCursor","disabled","$isDisabled","$hasChildren","$hasIcon","$isSecondary","style","visibility","initial","animate","transition","duration","whileTap","whileHover","AnimatePresence","StyledIconWrapper","icons","StyledMotionWaitCursorWrapper","width","exit","key","overflow","shouldHideBackground","StyledMotionChildrenWrapper","displayName","_default","exports"],"sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { AnimatePresence } from 'motion/react';\nimport React, { FC, MouseEventHandler, ReactNode, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\nimport type { Theme } from '../color-scheme-provider/ColorSchemeProvider';\nimport Icon from '../icon/Icon';\nimport {\n StyledIconWrapper,\n StyledMotionButton,\n StyledMotionChildrenWrapper,\n StyledMotionWaitCursorWrapper,\n} from './Button.styles';\nimport WaitCursor from './wait-cursor/WaitCursor';\n\nexport type ButtonProps = {\n /**\n * The label of the button\n */\n children?: ReactNode;\n /**\n * Additional class names for the button element\n */\n className?: string;\n /**\n * An icon that is displayed on the left-hand side of the button text\n */\n icon?: string;\n /**\n * Disables the button so that it cannot be clicked anymore\n */\n isDisabled?: boolean;\n /**\n * Displays the button in the secondary style\n */\n isSecondary?: boolean;\n /**\n * Function to be executed when the button is clicked\n */\n onClick: MouseEventHandler<HTMLButtonElement>;\n /**\n * Whether the button should be displayed as a selectButton.\n */\n shouldShowAsSelectButton?: boolean;\n /**\n * Whether the text should be 'Roboto Medium'\n */\n shouldShowTextAsRobotoMedium?: boolean;\n /**\n * Shows a wait cursor instead of button text\n */\n shouldShowWaitCursor?: boolean;\n /**\n * Stops event propagation on click\n */\n shouldStopPropagation?: boolean;\n};\n\nconst Button: FC<ButtonProps> = ({\n children,\n className,\n icon,\n isDisabled,\n isSecondary,\n onClick,\n shouldShowWaitCursor,\n shouldStopPropagation,\n shouldShowAsSelectButton = false,\n shouldShowTextAsRobotoMedium = true,\n}) => {\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n if (shouldStopPropagation) {\n event.stopPropagation();\n }\n\n onClick(event);\n };\n\n const buttonClasses = clsx('beta-chayns-button ellipsis', className);\n\n const theme = useTheme() as Theme;\n\n const iconColor = useMemo(() => {\n if (isSecondary) {\n return theme.text;\n }\n\n return theme.buttonDesign === '2'\n ? (theme.buttonColor ?? theme.buttonBackgroundColor ?? 'white')\n : (theme.buttonColor ?? 'white');\n }, [\n isSecondary,\n theme.buttonBackgroundColor,\n theme.buttonColor,\n theme.buttonDesign,\n theme.text,\n ]);\n\n const backgroundColor = useMemo(() => {\n let color;\n\n if (isSecondary || shouldShowAsSelectButton) {\n color = theme['202'];\n } else {\n color = theme.buttonBackgroundColor ?? theme['408'];\n }\n\n if (theme.buttonDesign === '2') {\n color = `rgba(${theme['102-rgb'] ?? ''}, 0)`;\n }\n\n return color;\n }, [isSecondary, shouldShowAsSelectButton, theme]);\n\n const tapStyles = useMemo(() => {\n if (theme.buttonDesign === '2') {\n return {\n backgroundColor:\n isSecondary || shouldShowAsSelectButton\n ? `rgba(${theme['202-rgb'] ?? ''}, 0.7)`\n : `${theme.buttonBackgroundColor ?? ''}40`,\n };\n }\n\n return { opacity: 0.6 };\n }, [isSecondary, shouldShowAsSelectButton, theme]);\n\n const hoverStyles = useMemo(() => {\n if (theme.buttonDesign === '2') {\n return { backgroundColor: `rgba(${theme['102-rgb'] ?? ''}, 0.5)` };\n }\n\n return { opacity: 1 };\n }, [theme]);\n\n return (\n <StyledMotionButton\n $shouldShowTextAsRobotoMedium={shouldShowTextAsRobotoMedium}\n $shouldShowAsSelectButton={shouldShowAsSelectButton}\n $shouldShowWaitCursor={shouldShowWaitCursor}\n className={buttonClasses}\n disabled={isDisabled}\n $isDisabled={isDisabled}\n $hasChildren={!!children}\n $hasIcon={typeof icon === 'string' && icon !== ''}\n $isSecondary={isSecondary}\n onClick={handleClick}\n style={{ visibility: !backgroundColor ? 'hidden' : 'visible', backgroundColor }}\n initial={{ opacity: 0.5 }}\n animate={{\n opacity: isDisabled ? 0.5 : 1,\n }}\n transition={{ visibility: { duration: 0 } }}\n whileTap={isDisabled ? {} : { ...tapStyles }}\n whileHover={isDisabled ? {} : { ...hoverStyles }}\n >\n <AnimatePresence initial={false}>\n {icon && (\n <StyledIconWrapper>\n <Icon color={iconColor} icons={[icon]} />\n </StyledIconWrapper>\n )}\n {shouldShowWaitCursor && (\n <StyledMotionWaitCursorWrapper\n animate={{ opacity: 1, width: 40 }}\n exit={{ opacity: 0, width: 0 }}\n initial={{ opacity: 0, width: 0 }}\n key=\"wait-cursor\"\n style={{ overflow: 'hidden' }}\n transition={{ duration: 0.2 }}\n >\n <WaitCursor color={iconColor ?? 'white'} shouldHideBackground />\n </StyledMotionWaitCursorWrapper>\n )}\n {!shouldShowWaitCursor && children && (\n <StyledMotionChildrenWrapper\n animate={{ opacity: 1, width: 'auto' }}\n exit={{ opacity: 0, width: 0 }}\n initial={{ opacity: 0, width: 0 }}\n key=\"children\"\n // style={{ overflow: 'hidden' }}\n transition={{ duration: 0.2 }}\n >\n {children}\n </StyledMotionChildrenWrapper>\n )}\n </AnimatePresence>\n </StyledMotionButton>\n );\n};\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Button.js","names":["_clsx","_interopRequireDefault","require","_react","_react2","_interopRequireWildcard","_styledComponents","_Icon","_Button","_WaitCursor","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Button","children","className","icon","isDisabled","isSecondary","onClick","shouldShowWaitCursor","shouldStopPropagation","shouldShowAsSelectButton","shouldShowTextAsRobotoMedium","handleClick","event","stopPropagation","buttonClasses","clsx","theme","useTheme","iconColor","useMemo","text","buttonDesign","buttonColor","buttonBackgroundColor","backgroundColor","color","tapStyles","opacity","hoverStyles","createElement","StyledMotionButton","$shouldShowTextAsRobotoMedium","$shouldShowAsSelectButton","$shouldShowWaitCursor","disabled","$isDisabled","$hasChildren","$hasIcon","$isSecondary","style","visibility","initial","animate","transition","duration","whileTap","whileHover","AnimatePresence","StyledIconWrapper","icons","StyledMotionWaitCursorWrapper","width","exit","key","overflow","shouldHideBackground","StyledMotionChildrenWrapper","displayName","_default","exports"],"sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { AnimatePresence } from 'motion/react';\nimport React, { FC, MouseEventHandler, ReactNode, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\nimport type { Theme } from '../color-scheme-provider/ColorSchemeProvider';\nimport Icon from '../icon/Icon';\nimport {\n StyledIconWrapper,\n StyledMotionButton,\n StyledMotionChildrenWrapper,\n StyledMotionWaitCursorWrapper,\n} from './Button.styles';\nimport WaitCursor from './wait-cursor/WaitCursor';\n\nexport type ButtonProps = {\n /**\n * The label of the button\n */\n children?: ReactNode;\n /**\n * Additional class names for the button element\n */\n className?: string;\n /**\n * An icon that is displayed on the left-hand side of the button text\n */\n icon?: string;\n /**\n * Whether the button is disabled and cannot be clicked anymore.\n */\n isDisabled?: boolean;\n /**\n * Displays the button in the secondary style\n */\n isSecondary?: boolean;\n /**\n * Function to be executed when the button is clicked\n */\n onClick: MouseEventHandler<HTMLButtonElement>;\n /**\n * Whether the button should be displayed as a selectButton.\n */\n shouldShowAsSelectButton?: boolean;\n /**\n * Whether the text should be 'Roboto Medium'\n */\n shouldShowTextAsRobotoMedium?: boolean;\n /**\n * Shows a wait cursor instead of button text\n */\n shouldShowWaitCursor?: boolean;\n /**\n * Stops event propagation on click\n */\n shouldStopPropagation?: boolean;\n};\n\nconst Button: FC<ButtonProps> = ({\n children,\n className,\n icon,\n isDisabled,\n isSecondary,\n onClick,\n shouldShowWaitCursor,\n shouldStopPropagation,\n shouldShowAsSelectButton = false,\n shouldShowTextAsRobotoMedium = true,\n}) => {\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n if (shouldStopPropagation) {\n event.stopPropagation();\n }\n\n onClick(event);\n };\n\n const buttonClasses = clsx('beta-chayns-button ellipsis', className);\n\n const theme = useTheme() as Theme;\n\n const iconColor = useMemo(() => {\n if (isSecondary) {\n return theme.text;\n }\n\n return theme.buttonDesign === '2'\n ? (theme.buttonColor ?? theme.buttonBackgroundColor ?? 'white')\n : (theme.buttonColor ?? 'white');\n }, [\n isSecondary,\n theme.buttonBackgroundColor,\n theme.buttonColor,\n theme.buttonDesign,\n theme.text,\n ]);\n\n const backgroundColor = useMemo(() => {\n let color;\n\n if (isSecondary || shouldShowAsSelectButton) {\n color = theme['202'];\n } else {\n color = theme.buttonBackgroundColor ?? theme['408'];\n }\n\n if (theme.buttonDesign === '2') {\n color = `rgba(${theme['102-rgb'] ?? ''}, 0)`;\n }\n\n return color;\n }, [isSecondary, shouldShowAsSelectButton, theme]);\n\n const tapStyles = useMemo(() => {\n if (theme.buttonDesign === '2') {\n return {\n backgroundColor:\n isSecondary || shouldShowAsSelectButton\n ? `rgba(${theme['202-rgb'] ?? ''}, 0.7)`\n : `${theme.buttonBackgroundColor ?? ''}40`,\n };\n }\n\n return { opacity: 0.6 };\n }, [isSecondary, shouldShowAsSelectButton, theme]);\n\n const hoverStyles = useMemo(() => {\n if (theme.buttonDesign === '2') {\n return { backgroundColor: `rgba(${theme['102-rgb'] ?? ''}, 0.5)` };\n }\n\n return { opacity: 1 };\n }, [theme]);\n\n return (\n <StyledMotionButton\n $shouldShowTextAsRobotoMedium={shouldShowTextAsRobotoMedium}\n $shouldShowAsSelectButton={shouldShowAsSelectButton}\n $shouldShowWaitCursor={shouldShowWaitCursor}\n className={buttonClasses}\n disabled={isDisabled}\n $isDisabled={isDisabled}\n $hasChildren={!!children}\n $hasIcon={typeof icon === 'string' && icon !== ''}\n $isSecondary={isSecondary}\n onClick={handleClick}\n style={{ visibility: !backgroundColor ? 'hidden' : 'visible', backgroundColor }}\n initial={{ opacity: 0.5 }}\n animate={{\n opacity: isDisabled ? 0.5 : 1,\n }}\n transition={{ visibility: { duration: 0 } }}\n whileTap={isDisabled ? {} : { ...tapStyles }}\n whileHover={isDisabled ? {} : { ...hoverStyles }}\n >\n <AnimatePresence initial={false}>\n {icon && (\n <StyledIconWrapper>\n <Icon color={iconColor} icons={[icon]} />\n </StyledIconWrapper>\n )}\n {shouldShowWaitCursor && (\n <StyledMotionWaitCursorWrapper\n animate={{ opacity: 1, width: 40 }}\n exit={{ opacity: 0, width: 0 }}\n initial={{ opacity: 0, width: 0 }}\n key=\"wait-cursor\"\n style={{ overflow: 'hidden' }}\n transition={{ duration: 0.2 }}\n >\n <WaitCursor color={iconColor ?? 'white'} shouldHideBackground />\n </StyledMotionWaitCursorWrapper>\n )}\n {!shouldShowWaitCursor && children && (\n <StyledMotionChildrenWrapper\n animate={{ opacity: 1, width: 'auto' }}\n exit={{ opacity: 0, width: 0 }}\n initial={{ opacity: 0, width: 0 }}\n key=\"children\"\n // style={{ overflow: 'hidden' }}\n transition={{ duration: 0.2 }}\n >\n {children}\n </StyledMotionChildrenWrapper>\n )}\n </AnimatePresence>\n </StyledMotionButton>\n );\n};\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -55,10 +55,12 @@ const StyledMotionButton = exports.StyledMotionButton = (0, _styledComponents.de
|
|
|
55
55
|
$isDisabled
|
|
56
56
|
}) => $isDisabled ? 'default' : 'pointer'};
|
|
57
57
|
display: inline-flex;
|
|
58
|
+
flex: 0 0 auto;
|
|
58
59
|
line-height: 22px;
|
|
59
60
|
min-height: 32px;
|
|
60
61
|
position: relative;
|
|
61
62
|
user-select: none;
|
|
63
|
+
width: fit-content;
|
|
62
64
|
|
|
63
65
|
${({
|
|
64
66
|
$hasIcon,
|
|
@@ -85,7 +87,6 @@ const StyledMotionButton = exports.StyledMotionButton = (0, _styledComponents.de
|
|
|
85
87
|
`;
|
|
86
88
|
}}
|
|
87
89
|
`;
|
|
88
|
-
//
|
|
89
90
|
const StyledIconWrapper = exports.StyledIconWrapper = _styledComponents.default.span`
|
|
90
91
|
align-items: center;
|
|
91
92
|
background-color: rgba(255, 255, 255, 0.2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.styles.js","names":["_react","require","_styledComponents","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledMotionButton","exports","styled","motion","button","$shouldShowTextAsRobotoMedium","$shouldShowAsSelectButton","css","$isSecondary","theme","text","buttonDesign","buttonColor","buttonBackgroundColor","$isDisabled","$hasIcon","$hasChildren","$shouldShowWaitCursor","StyledIconWrapper","span","StyledMotionChildrenWrapper","div","StyledMotionWaitCursorWrapper"],"sources":["../../../../src/components/button/Button.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledButtonProps = WithTheme<{\n $hasIcon: boolean;\n $hasChildren: boolean;\n $isDisabled?: boolean;\n $isSecondary?: boolean;\n $shouldShowTextAsRobotoMedium: boolean;\n $shouldShowAsSelectButton: boolean;\n $shouldShowWaitCursor?: boolean;\n}>;\n\nexport const StyledMotionButton = styled(motion.button)<StyledButtonProps>`\n ${({ $shouldShowTextAsRobotoMedium, $shouldShowAsSelectButton }) =>\n $shouldShowTextAsRobotoMedium &&\n !$shouldShowAsSelectButton &&\n css`\n font-size: 110%;\n font-family: 'Roboto Medium', serif;\n `}\n\n align-items: center;\n\n ${({ $isSecondary, $shouldShowAsSelectButton, theme }: StyledButtonProps) => {\n if ($isSecondary || $shouldShowAsSelectButton) {\n return css`\n color: ${theme.text};\n `;\n }\n\n return css`\n color: ${theme.buttonDesign === '2'\n ? (theme.buttonColor ?? theme.buttonBackgroundColor ?? 'white')\n : (theme.buttonColor ?? 'white')};\n `;\n }}\n\n ${({ theme, $isSecondary, $shouldShowAsSelectButton }: StyledButtonProps) => {\n if (theme.buttonDesign === '2' && !$shouldShowAsSelectButton) {\n return css`\n border: 1px solid ${$isSecondary ? theme['202'] : theme.buttonBackgroundColor};\n box-shadow: none;\n `;\n }\n\n return css`\n border: none;\n box-shadow: 1px 2px 3px rgba(0, 0, 0, 0.2);\n `;\n }}\n\n border-radius: 3px;\n cursor: ${({ $isDisabled }) => ($isDisabled ? 'default' : 'pointer')};\n display: inline-flex;\n line-height: 22px;\n min-height: 32px;\n position: relative;\n user-select: none;\n\n ${({ $hasIcon, $hasChildren, $shouldShowWaitCursor }) => {\n if ($shouldShowWaitCursor) {\n return css`\n padding: 4px 12px;\n `;\n }\n\n if ($hasIcon) {\n if ($hasChildren) {\n return css`\n padding: 6px 12px 6px 42px;\n `;\n }\n return css`\n padding: 6px 12px 6px 18px;\n `;\n }\n return css`\n padding: 6px 12px 6px 12px;\n `;\n }}\n`;\n
|
|
1
|
+
{"version":3,"file":"Button.styles.js","names":["_react","require","_styledComponents","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledMotionButton","exports","styled","motion","button","$shouldShowTextAsRobotoMedium","$shouldShowAsSelectButton","css","$isSecondary","theme","text","buttonDesign","buttonColor","buttonBackgroundColor","$isDisabled","$hasIcon","$hasChildren","$shouldShowWaitCursor","StyledIconWrapper","span","StyledMotionChildrenWrapper","div","StyledMotionWaitCursorWrapper"],"sources":["../../../../src/components/button/Button.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledButtonProps = WithTheme<{\n $hasIcon: boolean;\n $hasChildren: boolean;\n $isDisabled?: boolean;\n $isSecondary?: boolean;\n $shouldShowTextAsRobotoMedium: boolean;\n $shouldShowAsSelectButton: boolean;\n $shouldShowWaitCursor?: boolean;\n}>;\n\nexport const StyledMotionButton = styled(motion.button)<StyledButtonProps>`\n ${({ $shouldShowTextAsRobotoMedium, $shouldShowAsSelectButton }) =>\n $shouldShowTextAsRobotoMedium &&\n !$shouldShowAsSelectButton &&\n css`\n font-size: 110%;\n font-family: 'Roboto Medium', serif;\n `}\n\n align-items: center;\n\n ${({ $isSecondary, $shouldShowAsSelectButton, theme }: StyledButtonProps) => {\n if ($isSecondary || $shouldShowAsSelectButton) {\n return css`\n color: ${theme.text};\n `;\n }\n\n return css`\n color: ${theme.buttonDesign === '2'\n ? (theme.buttonColor ?? theme.buttonBackgroundColor ?? 'white')\n : (theme.buttonColor ?? 'white')};\n `;\n }}\n\n ${({ theme, $isSecondary, $shouldShowAsSelectButton }: StyledButtonProps) => {\n if (theme.buttonDesign === '2' && !$shouldShowAsSelectButton) {\n return css`\n border: 1px solid ${$isSecondary ? theme['202'] : theme.buttonBackgroundColor};\n box-shadow: none;\n `;\n }\n\n return css`\n border: none;\n box-shadow: 1px 2px 3px rgba(0, 0, 0, 0.2);\n `;\n }}\n\n border-radius: 3px;\n cursor: ${({ $isDisabled }) => ($isDisabled ? 'default' : 'pointer')};\n display: inline-flex;\n flex: 0 0 auto;\n line-height: 22px;\n min-height: 32px;\n position: relative;\n user-select: none;\n width: fit-content;\n\n ${({ $hasIcon, $hasChildren, $shouldShowWaitCursor }) => {\n if ($shouldShowWaitCursor) {\n return css`\n padding: 4px 12px;\n `;\n }\n\n if ($hasIcon) {\n if ($hasChildren) {\n return css`\n padding: 6px 12px 6px 42px;\n `;\n }\n return css`\n padding: 6px 12px 6px 18px;\n `;\n }\n return css`\n padding: 6px 12px 6px 12px;\n `;\n }}\n`;\n\nexport const StyledIconWrapper = styled.span`\n align-items: center;\n background-color: rgba(255, 255, 255, 0.2);\n bottom: 0;\n display: flex;\n justify-content: center;\n left: 0;\n position: absolute;\n top: 0;\n width: 30px;\n`;\n\nexport const StyledMotionChildrenWrapper = styled(motion.div)`\n will-change: unset !important;\n`;\n\nexport const StyledMotionWaitCursorWrapper = styled(motion.div)`\n align-items: center;\n display: flex;\n justify-content: center;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAgD,SAAAE,wBAAAC,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAH,uBAAA,YAAAA,CAAAC,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAazC,MAAMkB,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,IAAAE,yBAAM,EAACC,aAAM,CAACC,MAAM,CAAoB;AAC1E,MAAM,CAAC;EAAEC,6BAA6B;EAAEC;AAA0B,CAAC,KAC3DD,6BAA6B,IAC7B,CAACC,yBAAyB,IAC1B,IAAAC,qBAAG;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,MAAM,CAAC;EAAEC,YAAY;EAAEF,yBAAyB;EAAEG;AAAyB,CAAC,KAAK;EACzE,IAAID,YAAY,IAAIF,yBAAyB,EAAE;IAC3C,OAAO,IAAAC,qBAAG;AACtB,yBAAyBE,KAAK,CAACC,IAAI;AACnC,aAAa;EACL;EAEA,OAAO,IAAAH,qBAAG;AAClB,qBAAqBE,KAAK,CAACE,YAAY,KAAK,GAAG,GAC5BF,KAAK,CAACG,WAAW,IAAIH,KAAK,CAACI,qBAAqB,IAAI,OAAO,GAC3DJ,KAAK,CAACG,WAAW,IAAI,OAAQ;AAChD,SAAS;AACL,CAAC;AACL;AACA,MAAM,CAAC;EAAEH,KAAK;EAAED,YAAY;EAAEF;AAA6C,CAAC,KAAK;EACzE,IAAIG,KAAK,CAACE,YAAY,KAAK,GAAG,IAAI,CAACL,yBAAyB,EAAE;IAC1D,OAAO,IAAAC,qBAAG;AACtB,oCAAoCC,YAAY,GAAGC,KAAK,CAAC,KAAK,CAAC,GAAGA,KAAK,CAACI,qBAAqB;AAC7F;AACA,aAAa;EACL;EAEA,OAAO,IAAAN,qBAAG;AAClB;AACA;AACA,SAAS;AACL,CAAC;AACL;AACA;AACA,cAAc,CAAC;EAAEO;AAAY,CAAC,KAAMA,WAAW,GAAG,SAAS,GAAG,SAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;EAAEC,QAAQ;EAAEC,YAAY;EAAEC;AAAsB,CAAC,KAAK;EACrD,IAAIA,qBAAqB,EAAE;IACvB,OAAO,IAAAV,qBAAG;AACtB;AACA,aAAa;EACL;EAEA,IAAIQ,QAAQ,EAAE;IACV,IAAIC,YAAY,EAAE;MACd,OAAO,IAAAT,qBAAG;AAC1B;AACA,iBAAiB;IACL;IACA,OAAO,IAAAA,qBAAG;AACtB;AACA,aAAa;EACL;EACA,OAAO,IAAAA,qBAAG;AAClB;AACA,SAAS;AACL,CAAC;AACL,CAAC;AAEM,MAAMW,iBAAiB,GAAAjB,OAAA,CAAAiB,iBAAA,GAAGhB,yBAAM,CAACiB,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,2BAA2B,GAAAnB,OAAA,CAAAmB,2BAAA,GAAG,IAAAlB,yBAAM,EAACC,aAAM,CAACkB,GAAG,CAAC;AAC7D;AACA,CAAC;AAEM,MAAMC,6BAA6B,GAAArB,OAAA,CAAAqB,6BAAA,GAAG,IAAApB,yBAAM,EAACC,aAAM,CAACkB,GAAG,CAAC;AAC/D;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -35,7 +35,8 @@ const ComboBox = ({
|
|
|
35
35
|
onInputChange,
|
|
36
36
|
shouldUseCurrentItemWidth = false,
|
|
37
37
|
onInputBlur,
|
|
38
|
-
inputValue
|
|
38
|
+
inputValue,
|
|
39
|
+
shouldDropDownUseMaxItemWidth = false
|
|
39
40
|
}) => {
|
|
40
41
|
const [internalSelectedItem, setInternalSelectedItem] = (0, _react.useState)();
|
|
41
42
|
const [isAnimating, setIsAnimating] = (0, _react.useState)(false);
|
|
@@ -170,6 +171,16 @@ const ComboBox = ({
|
|
|
170
171
|
(0, _react.useEffect)(() => {
|
|
171
172
|
var _styledComboBoxElemen;
|
|
172
173
|
const allItems = lists.flatMap(list => list.list);
|
|
174
|
+
let baseWidth = (0, _calculate.calculateContentWidth)([...allItems, {
|
|
175
|
+
text: placeholder,
|
|
176
|
+
value: 'placeholder'
|
|
177
|
+
}, ...(selectedItem ? [selectedItem] : [])], functions, values);
|
|
178
|
+
if (shouldDropDownUseMaxItemWidth) {
|
|
179
|
+
baseWidth += 20 + 2; // 20px padding left and right and 2px border
|
|
180
|
+
setBodyMinWidth(baseWidth);
|
|
181
|
+
setMinWidth(baseWidth);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
173
184
|
const hasImage = [selectedItem, ...allItems].some(item => item === null || item === void 0 ? void 0 : item.imageUrl);
|
|
174
185
|
const hasIcon = [selectedItem, ...allItems].some(item => item === null || item === void 0 ? void 0 : item.icons);
|
|
175
186
|
const parentWidth = ((_styledComboBoxElemen = styledComboBoxElementRef.current) === null || _styledComboBoxElemen === void 0 || (_styledComboBoxElemen = _styledComboBoxElemen.parentElement) === null || _styledComboBoxElemen === void 0 ? void 0 : _styledComboBoxElemen.getBoundingClientRect().width) ?? 0;
|
|
@@ -185,10 +196,6 @@ const ComboBox = ({
|
|
|
185
196
|
}], functions, values) + 5;
|
|
186
197
|
prefixWidth = Math.max(prefixTextWidth, 32);
|
|
187
198
|
}
|
|
188
|
-
const baseWidth = (0, _calculate.calculateContentWidth)([...allItems, {
|
|
189
|
-
text: placeholder,
|
|
190
|
-
value: 'placeholder'
|
|
191
|
-
}, ...(selectedItem ? [selectedItem] : [])], functions, values);
|
|
192
199
|
const calculatedWidth = baseWidth + paddingWidth + imageWidth + iconWidth + prefixWidth;
|
|
193
200
|
let tmpMinWidth = calculatedWidth;
|
|
194
201
|
let tmpBodyMinWidth = calculatedWidth;
|
|
@@ -198,7 +205,6 @@ const ComboBox = ({
|
|
|
198
205
|
tmpMinWidth = parentWidth;
|
|
199
206
|
tmpBodyMinWidth = parentWidth < calculatedWidth - 20 ? calculatedWidth - 20 : parentWidth;
|
|
200
207
|
}
|
|
201
|
-
|
|
202
208
|
// Current item width settings
|
|
203
209
|
else if (shouldUseCurrentItemWidth && internalSelectedItem) {
|
|
204
210
|
const itemWidth = (0, _calculate.calculateContentWidth)([internalSelectedItem], functions, values) + paddingWidth + imageWidth + iconWidth + prefixWidth;
|
|
@@ -213,7 +219,7 @@ const ComboBox = ({
|
|
|
213
219
|
}
|
|
214
220
|
setMinWidth(tmpMinWidth);
|
|
215
221
|
setBodyMinWidth(shouldUseCurrentItemWidth ? tmpMinWidth : tmpBodyMinWidth);
|
|
216
|
-
}, [lists, placeholder, shouldUseFullWidth, shouldUseCurrentItemWidth, internalSelectedItem, prefix, selectedItem, functions, values]);
|
|
222
|
+
}, [lists, placeholder, shouldUseFullWidth, shouldUseCurrentItemWidth, internalSelectedItem, prefix, selectedItem, functions, values, shouldDropDownUseMaxItemWidth]);
|
|
217
223
|
|
|
218
224
|
/**
|
|
219
225
|
* This function sets the external selected item
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","names":["_chaynsApi","require","_react","_interopRequireWildcard","_calculate","_environment","_AreaContextProvider","_Icon","_interopRequireDefault","_ComboBoxItem","_ComboBox","_DropdownBodyWrapper","_dropdown","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComboBox","bodyWidth","direction","DropdownDirection","RIGHT","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","isInputFocused","useRef","styledComboBoxElementRef","contentRef","functions","useFunctions","values","useValues","isTouch","getIsTouch","browser","useDevice","areaProvider","useContext","AreaContext","shouldChangeColor","useMemo","shouldDisableActions","combinedLists","flatMap","list","length","some","item","value","contentHeight","flatItems","result","handleInputFocus","useCallback","event","current","handleInputBlur","handleOpen","handleClose","handleSetSelectedItem","itemToSelect","onSelectResult","Promise","then","shouldPreventSelection","handleClear","preventDefault","stopPropagation","useEffect","handleKeyDown","key","_contentRef$current","children","stepDirection","newIndex","attempts","newElement","shouldSkip","id","startsWith","endsWith","prevElement","tabIndex","focusedElement","focus","_contentRef$current2","element","newSelectedItem","find","String","replace","document","addEventListener","removeEventListener","_styledComboBoxElemen","allItems","hasImage","imageUrl","hasIcon","icons","parentWidth","parentElement","getBoundingClientRect","width","paddingWidth","imageWidth","iconWidth","prefixWidth","prefixTextWidth","calculateContentWidth","text","Math","max","baseWidth","calculatedWidth","tmpMinWidth","tmpBodyMinWidth","itemWidth","placeholderImageUrl","placeholderIcon","placeholderText","shouldShowRoundPlaceholderImage","selectedItemList","handleHeaderClick","comboBoxGroups","map","createElement","Fragment","groupName","StyledComboBoxTopic","isSelected","StyledComboBox","ref","$minWidth","$shouldUseFullWidth","$shouldUseCurrentItemWidth","StyledComboBoxHeader","$direction","onClick","$isOpen","$isTouch","$isDisabled","$shouldChangeColor","$shouldShowBigImage","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxPrefix","StyledComboBoxPlaceholder","$shouldReduceOpacity","StyledComboBoxPlaceholderImage","src","$shouldShowRoundImage","StyledComboBoxInput","disabled","onChange","onBlur","onFocus","StyledComboBoxPlaceholderText","suffixElement","StyledComboBoxClearIconWrapper","StyledComboBoxIconWrapper","$shouldShowBorderLeft","anchorElement","onClose","shouldShowDropdown","minBodyWidth","StyledComboBoxBody","$maxHeight","$browser","name","displayName","_default","exports"],"sources":["../../../../src/components/combobox/ComboBox.tsx"],"sourcesContent":["import { useDevice, useFunctions, useValues } from 'chayns-api';\nimport React, {\n ChangeEventHandler,\n type CSSProperties,\n FC,\n FocusEventHandler,\n Fragment,\n ReactHTML,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { BrowserName } from '../../types/chayns';\nimport { calculateContentWidth } from '../../utils/calculate';\nimport { getIsTouch } from '../../utils/environment';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport Icon from '../icon/Icon';\nimport ComboBoxItem from './combobox-item/ComboBoxItem';\nimport {\n StyledComboBox,\n StyledComboBoxBody,\n StyledComboBoxClearIconWrapper,\n StyledComboBoxHeader,\n StyledComboBoxIconWrapper,\n StyledComboBoxInput,\n StyledComboBoxPlaceholder,\n StyledComboBoxPlaceholderImage,\n StyledComboBoxPlaceholderText,\n StyledComboBoxPrefix,\n StyledComboBoxPrefixAndPlaceholderWrapper,\n StyledComboBoxTopic,\n} from './ComboBox.styles';\nimport DropdownBodyWrapper from '../dropdown-body-wrapper/DropdownBodyWrapper';\nimport { DropdownDirection } from '../../types/dropdown';\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 /**\n * The width of the body.\n */\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?: DropdownDirection;\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?: number;\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 /**\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 = DropdownDirection.RIGHT,\n isDisabled = false,\n lists,\n maxHeight = 280,\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\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 isTouch = getIsTouch();\n\n const { browser } = useDevice();\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 const contentHeight = useMemo(() => {\n const flatItems = lists.flatMap((list) => list.list);\n\n let result = flatItems.length * 36;\n\n if (lists.length > 1) {\n result += lists.length * 36;\n }\n\n if (maxHeight < result) {\n result = maxHeight;\n }\n\n return result;\n }, [lists, maxHeight]);\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 handleOpen = useCallback(() => {\n setIsAnimating(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\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 handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating) return;\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n\n const children = contentRef.current?.children;\n\n if (!children || children.length === 0) return;\n\n const stepDirection = e.key === 'ArrowUp' ? -1 : 1;\n\n let newIndex = focusedIndex ?? -1;\n\n let attempts = 0;\n\n do {\n newIndex = (newIndex + stepDirection + children.length) % children.length;\n\n const newElement = children[newIndex] as HTMLDivElement;\n\n let shouldSkip = false;\n\n if (\n newElement.id.startsWith('combobox-group--') ||\n newElement.id.endsWith('--disabled-item')\n ) {\n shouldSkip = true;\n }\n\n if (!shouldSkip) break;\n\n attempts++;\n } while (attempts < children.length);\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const focusedElement = children[newIndex] as HTMLDivElement;\n\n focusedElement.tabIndex = 0;\n\n focusedElement.focus();\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n const element = contentRef.current?.children[focusedIndex];\n\n if (!element) return;\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\n return !!newSelectedItem;\n });\n\n if (newSelectedItem) {\n handleSetSelectedItem(newSelectedItem);\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => document.removeEventListener('keydown', handleKeyDown);\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 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 <Fragment key={list.groupName ?? 'default-group'}>\n {list.groupName && lists.length > 1 && (\n <StyledComboBoxTopic id={`combobox-group--${list.groupName}`}>\n {list.groupName}\n </StyledComboBoxTopic>\n )}\n {list.list.map((item) => (\n <ComboBoxItem\n item={item}\n isSelected={selectedItem ? item.value === selectedItem.value : false}\n onSelect={handleSetSelectedItem}\n shouldShowBigImage={shouldShowBigImage}\n shouldShowRoundImage={list.shouldShowRoundImage ?? shouldShowRoundImage}\n />\n ))}\n </Fragment>\n )),\n [handleSetSelectedItem, lists, selectedItem, shouldShowBigImage, shouldShowRoundImage],\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 {styledComboBoxElementRef.current && (\n <DropdownBodyWrapper\n anchorElement={styledComboBoxElementRef.current}\n bodyWidth={bodyWidth}\n contentHeight={contentHeight}\n onClose={handleClose}\n direction={direction}\n container={container}\n shouldShowDropdown={isAnimating}\n minBodyWidth={bodyWidth ?? bodyMinWidth}\n maxHeight={maxHeight}\n >\n <StyledComboBoxBody\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n $maxHeight={maxHeight}\n $minWidth={bodyWidth ?? bodyMinWidth}\n $browser={browser?.name as BrowserName}\n ref={contentRef}\n tabIndex={0}\n >\n {comboBoxGroups}\n </StyledComboBoxBody>\n </DropdownBodyWrapper>\n )}\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 bodyWidth,\n contentHeight,\n handleClose,\n container,\n bodyMinWidth,\n maxHeight,\n browser?.name,\n comboBoxGroups,\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","_interopRequireWildcard","_calculate","_environment","_AreaContextProvider","_Icon","_interopRequireDefault","_ComboBoxItem","_ComboBox","_DropdownBodyWrapper","_dropdown","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComboBox","bodyWidth","direction","DropdownDirection","RIGHT","isDisabled","lists","maxHeight","onSelect","placeholder","prefix","container","selectedItem","shouldShowBigImage","shouldShowClearIcon","shouldShowRoundImage","onInputFocus","shouldUseFullWidth","onInputChange","shouldUseCurrentItemWidth","onInputBlur","inputValue","shouldDropDownUseMaxItemWidth","internalSelectedItem","setInternalSelectedItem","useState","isAnimating","setIsAnimating","minWidth","setMinWidth","undefined","bodyMinWidth","setBodyMinWidth","focusedIndex","setFocusedIndex","isInputFocused","useRef","styledComboBoxElementRef","contentRef","functions","useFunctions","values","useValues","isTouch","getIsTouch","browser","useDevice","areaProvider","useContext","AreaContext","shouldChangeColor","useMemo","shouldDisableActions","combinedLists","flatMap","list","length","some","item","value","contentHeight","flatItems","result","handleInputFocus","useCallback","event","current","handleInputBlur","handleOpen","handleClose","handleSetSelectedItem","itemToSelect","onSelectResult","Promise","then","shouldPreventSelection","handleClear","preventDefault","stopPropagation","useEffect","handleKeyDown","key","_contentRef$current","children","stepDirection","newIndex","attempts","newElement","shouldSkip","id","startsWith","endsWith","prevElement","tabIndex","focusedElement","focus","_contentRef$current2","element","newSelectedItem","find","String","replace","document","addEventListener","removeEventListener","_styledComboBoxElemen","allItems","baseWidth","calculateContentWidth","text","hasImage","imageUrl","hasIcon","icons","parentWidth","parentElement","getBoundingClientRect","width","paddingWidth","imageWidth","iconWidth","prefixWidth","prefixTextWidth","Math","max","calculatedWidth","tmpMinWidth","tmpBodyMinWidth","itemWidth","placeholderImageUrl","placeholderIcon","placeholderText","shouldShowRoundPlaceholderImage","selectedItemList","handleHeaderClick","comboBoxGroups","map","createElement","Fragment","groupName","StyledComboBoxTopic","isSelected","StyledComboBox","ref","$minWidth","$shouldUseFullWidth","$shouldUseCurrentItemWidth","StyledComboBoxHeader","$direction","onClick","$isOpen","$isTouch","$isDisabled","$shouldChangeColor","$shouldShowBigImage","StyledComboBoxPrefixAndPlaceholderWrapper","StyledComboBoxPrefix","StyledComboBoxPlaceholder","$shouldReduceOpacity","StyledComboBoxPlaceholderImage","src","$shouldShowRoundImage","StyledComboBoxInput","disabled","onChange","onBlur","onFocus","StyledComboBoxPlaceholderText","suffixElement","StyledComboBoxClearIconWrapper","StyledComboBoxIconWrapper","$shouldShowBorderLeft","anchorElement","onClose","shouldShowDropdown","minBodyWidth","StyledComboBoxBody","$maxHeight","$browser","name","displayName","_default","exports"],"sources":["../../../../src/components/combobox/ComboBox.tsx"],"sourcesContent":["import { useDevice, useFunctions, useValues } from 'chayns-api';\nimport React, {\n ChangeEventHandler,\n type CSSProperties,\n FC,\n FocusEventHandler,\n Fragment,\n ReactHTML,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { BrowserName } from '../../types/chayns';\nimport { calculateContentWidth } from '../../utils/calculate';\nimport { getIsTouch } from '../../utils/environment';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport Icon from '../icon/Icon';\nimport ComboBoxItem from './combobox-item/ComboBoxItem';\nimport {\n StyledComboBox,\n StyledComboBoxBody,\n StyledComboBoxClearIconWrapper,\n StyledComboBoxHeader,\n StyledComboBoxIconWrapper,\n StyledComboBoxInput,\n StyledComboBoxPlaceholder,\n StyledComboBoxPlaceholderImage,\n StyledComboBoxPlaceholderText,\n StyledComboBoxPrefix,\n StyledComboBoxPrefixAndPlaceholderWrapper,\n StyledComboBoxTopic,\n} from './ComboBox.styles';\nimport DropdownBodyWrapper from '../dropdown-body-wrapper/DropdownBodyWrapper';\nimport { DropdownDirection } from '../../types/dropdown';\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 /**\n * The width of the body.\n */\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?: DropdownDirection;\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?: number;\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 /**\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 * If true, the dropdown will use the maximum width of the items.\n */\n shouldDropDownUseMaxItemWidth?: boolean;\n};\n\nconst ComboBox: FC<ComboBoxProps> = ({\n bodyWidth,\n direction = DropdownDirection.RIGHT,\n isDisabled = false,\n lists,\n maxHeight = 280,\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 shouldDropDownUseMaxItemWidth = false,\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\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 isTouch = getIsTouch();\n\n const { browser } = useDevice();\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 const contentHeight = useMemo(() => {\n const flatItems = lists.flatMap((list) => list.list);\n\n let result = flatItems.length * 36;\n\n if (lists.length > 1) {\n result += lists.length * 36;\n }\n\n if (maxHeight < result) {\n result = maxHeight;\n }\n\n return result;\n }, [lists, maxHeight]);\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 handleOpen = useCallback(() => {\n setIsAnimating(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setIsAnimating(false);\n }, []);\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 handleKeyDown = (e: KeyboardEvent) => {\n if (!isAnimating) return;\n\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n\n const children = contentRef.current?.children;\n\n if (!children || children.length === 0) return;\n\n const stepDirection = e.key === 'ArrowUp' ? -1 : 1;\n\n let newIndex = focusedIndex ?? -1;\n\n let attempts = 0;\n\n do {\n newIndex = (newIndex + stepDirection + children.length) % children.length;\n\n const newElement = children[newIndex] as HTMLDivElement;\n\n let shouldSkip = false;\n\n if (\n newElement.id.startsWith('combobox-group--') ||\n newElement.id.endsWith('--disabled-item')\n ) {\n shouldSkip = true;\n }\n\n if (!shouldSkip) break;\n\n attempts++;\n } while (attempts < children.length);\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const focusedElement = children[newIndex] as HTMLDivElement;\n\n focusedElement.tabIndex = 0;\n\n focusedElement.focus();\n } else if (e.key === 'Enter' && focusedIndex !== null) {\n const element = contentRef.current?.children[focusedIndex];\n\n if (!element) return;\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\n return !!newSelectedItem;\n });\n\n if (newSelectedItem) {\n handleSetSelectedItem(newSelectedItem);\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => document.removeEventListener('keydown', handleKeyDown);\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\n let baseWidth = calculateContentWidth(\n [\n ...allItems,\n { text: placeholder, value: 'placeholder' },\n ...(selectedItem ? [selectedItem] : []),\n ],\n functions,\n values,\n );\n\n if (shouldDropDownUseMaxItemWidth) {\n baseWidth += 20 + 2; // 20px padding left and right and 2px border\n setBodyMinWidth(baseWidth);\n setMinWidth(baseWidth);\n return;\n }\n\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 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 // 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 shouldDropDownUseMaxItemWidth,\n ]);\n\n /**\n * This function sets the external selected item\n */\n useEffect(() => {\n setIsAnimating(false);\n setInternalSelectedItem(selectedItem);\n }, [selectedItem]);\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 <Fragment key={list.groupName ?? 'default-group'}>\n {list.groupName && lists.length > 1 && (\n <StyledComboBoxTopic id={`combobox-group--${list.groupName}`}>\n {list.groupName}\n </StyledComboBoxTopic>\n )}\n {list.list.map((item) => (\n <ComboBoxItem\n item={item}\n isSelected={selectedItem ? item.value === selectedItem.value : false}\n onSelect={handleSetSelectedItem}\n shouldShowBigImage={shouldShowBigImage}\n shouldShowRoundImage={list.shouldShowRoundImage ?? shouldShowRoundImage}\n />\n ))}\n </Fragment>\n )),\n [handleSetSelectedItem, lists, selectedItem, shouldShowBigImage, shouldShowRoundImage],\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 {styledComboBoxElementRef.current && (\n <DropdownBodyWrapper\n anchorElement={styledComboBoxElementRef.current}\n bodyWidth={bodyWidth}\n contentHeight={contentHeight}\n onClose={handleClose}\n direction={direction}\n container={container}\n shouldShowDropdown={isAnimating}\n minBodyWidth={bodyWidth ?? bodyMinWidth}\n maxHeight={maxHeight}\n >\n <StyledComboBoxBody\n $shouldUseCurrentItemWidth={shouldUseCurrentItemWidth}\n $maxHeight={maxHeight}\n $minWidth={bodyWidth ?? bodyMinWidth}\n $browser={browser?.name as BrowserName}\n ref={contentRef}\n tabIndex={0}\n >\n {comboBoxGroups}\n </StyledComboBoxBody>\n </DropdownBodyWrapper>\n )}\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 bodyWidth,\n contentHeight,\n handleClose,\n container,\n bodyMinWidth,\n maxHeight,\n browser?.name,\n comboBoxGroups,\n ],\n );\n};\n\nComboBox.displayName = 'ComboBox';\n\nexport default ComboBox;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,13 +13,15 @@ var _sliderButton = require("../../utils/sliderButton");
|
|
|
13
13
|
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
14
14
|
var _Popup = _interopRequireDefault(require("../popup/Popup"));
|
|
15
15
|
var _SliderButton = require("./SliderButton.styles");
|
|
16
|
+
var _styledComponents = require("styled-components");
|
|
16
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
18
19
|
const SliderButton = ({
|
|
19
|
-
selectedButtonId,
|
|
20
20
|
isDisabled,
|
|
21
|
+
isSecondary,
|
|
21
22
|
items,
|
|
22
|
-
onChange
|
|
23
|
+
onChange,
|
|
24
|
+
selectedButtonId
|
|
23
25
|
}) => {
|
|
24
26
|
const [dragRange, setDragRange] = (0, _react2.useState)({
|
|
25
27
|
left: 0,
|
|
@@ -36,6 +38,7 @@ const SliderButton = ({
|
|
|
36
38
|
const sliderButtonWrapperRef = (0, _react2.useRef)(null);
|
|
37
39
|
const popupRef = (0, _react2.useRef)(null);
|
|
38
40
|
const [scope, animate] = (0, _react.useAnimate)();
|
|
41
|
+
const theme = (0, _styledComponents.useTheme)();
|
|
39
42
|
const initialItemWidth = (0, _react2.useMemo)(() => (0, _calculate.calculateBiggestWidth)(items), [items]);
|
|
40
43
|
const elementSize = (0, _element.useElementSize)(sliderButtonRef);
|
|
41
44
|
(0, _react2.useEffect)(() => {
|
|
@@ -126,6 +129,30 @@ const SliderButton = ({
|
|
|
126
129
|
}
|
|
127
130
|
setItemPosition(index);
|
|
128
131
|
}, [isDisabled, onChange, setItemPosition, setPopupId]);
|
|
132
|
+
const backgroundColor = (0, _react2.useMemo)(() => {
|
|
133
|
+
let color;
|
|
134
|
+
if (isSecondary) {
|
|
135
|
+
color = theme['202'];
|
|
136
|
+
} else {
|
|
137
|
+
color = theme.buttonBackgroundColor ?? theme['408'];
|
|
138
|
+
}
|
|
139
|
+
if (theme.buttonDesign === '2') {
|
|
140
|
+
color = `rgba(${theme['102-rgb'] ?? ''}, 0)`;
|
|
141
|
+
}
|
|
142
|
+
return color;
|
|
143
|
+
}, [isSecondary, theme]);
|
|
144
|
+
const thumbBackgroundColor = (0, _react2.useMemo)(() => {
|
|
145
|
+
let color;
|
|
146
|
+
if (isSecondary) {
|
|
147
|
+
color = theme['207'];
|
|
148
|
+
} else {
|
|
149
|
+
color = `rgba(${theme['405-rgb'] ?? ''}, 0.75)`;
|
|
150
|
+
}
|
|
151
|
+
if (theme.buttonDesign === '2') {
|
|
152
|
+
color = `rgba(${theme['102-rgb'] ?? ''}, 0)`;
|
|
153
|
+
}
|
|
154
|
+
return color;
|
|
155
|
+
}, [isSecondary, theme]);
|
|
129
156
|
const buttons = (0, _react2.useMemo)(() => {
|
|
130
157
|
if (items.length > shownItemsCount) {
|
|
131
158
|
const newItems = items.slice(0, shownItemsCount - 1);
|
|
@@ -134,6 +161,7 @@ const SliderButton = ({
|
|
|
134
161
|
id,
|
|
135
162
|
text
|
|
136
163
|
}, index) => /*#__PURE__*/_react2.default.createElement(_SliderButton.StyledSliderButtonItem, {
|
|
164
|
+
$isSecondary: isSecondary,
|
|
137
165
|
$width: itemWidth,
|
|
138
166
|
key: `slider-button-${id}`,
|
|
139
167
|
onClick: () => handleClick(id, index)
|
|
@@ -148,6 +176,7 @@ const SliderButton = ({
|
|
|
148
176
|
}, text));
|
|
149
177
|
const id = 'more';
|
|
150
178
|
elements.push(/*#__PURE__*/_react2.default.createElement(_SliderButton.StyledSliderButtonItem, {
|
|
179
|
+
$isSecondary: isSecondary,
|
|
151
180
|
$width: itemWidth,
|
|
152
181
|
key: `slider-button-${id}`
|
|
153
182
|
}, /*#__PURE__*/_react2.default.createElement(_Popup.default, {
|
|
@@ -163,10 +192,11 @@ const SliderButton = ({
|
|
|
163
192
|
id,
|
|
164
193
|
text
|
|
165
194
|
}) => /*#__PURE__*/_react2.default.createElement(_SliderButton.StyledSliderButtonItem, {
|
|
195
|
+
$isSecondary: isSecondary,
|
|
166
196
|
$width: itemWidth,
|
|
167
197
|
key: `slider-button-${id}`
|
|
168
198
|
}, text));
|
|
169
|
-
}, [currentPopupId, handleClick, itemWidth, items, shownItemsCount]);
|
|
199
|
+
}, [currentPopupId, handleClick, isSecondary, itemWidth, items, shownItemsCount]);
|
|
170
200
|
const pseudoButtons = (0, _react2.useMemo)(() => {
|
|
171
201
|
if (items.length > shownItemsCount) {
|
|
172
202
|
const newItems = items.slice(0, shownItemsCount - 1);
|
|
@@ -174,12 +204,14 @@ const SliderButton = ({
|
|
|
174
204
|
id,
|
|
175
205
|
text
|
|
176
206
|
}, index) => /*#__PURE__*/_react2.default.createElement(_SliderButton.StyledSliderButtonItem, {
|
|
207
|
+
$isSecondary: isSecondary,
|
|
177
208
|
$width: itemWidth,
|
|
178
209
|
key: `pseudo-slider-button-${id}`,
|
|
179
210
|
onClick: () => handleClick(id, index)
|
|
180
211
|
}, text));
|
|
181
212
|
const id = 'more';
|
|
182
213
|
elements.push(/*#__PURE__*/_react2.default.createElement(_SliderButton.StyledSliderButtonItem, {
|
|
214
|
+
$isSecondary: isSecondary,
|
|
183
215
|
$width: itemWidth,
|
|
184
216
|
key: `pseudo-slider-button-${id}`,
|
|
185
217
|
onClick: () => handleClick(id, newItems.length)
|
|
@@ -192,11 +224,12 @@ const SliderButton = ({
|
|
|
192
224
|
id,
|
|
193
225
|
text
|
|
194
226
|
}, index) => /*#__PURE__*/_react2.default.createElement(_SliderButton.StyledSliderButtonItem, {
|
|
227
|
+
$isSecondary: isSecondary,
|
|
195
228
|
$width: itemWidth,
|
|
196
229
|
key: `pseudo-slider-button-${id}`,
|
|
197
230
|
onClick: () => handleClick(id, index)
|
|
198
231
|
}, text));
|
|
199
|
-
}, [handleClick, itemWidth, items, shownItemsCount]);
|
|
232
|
+
}, [handleClick, isSecondary, itemWidth, items, shownItemsCount]);
|
|
200
233
|
|
|
201
234
|
/**
|
|
202
235
|
* Creates an array with the snap points relative to the width of the items
|
|
@@ -286,12 +319,18 @@ const SliderButton = ({
|
|
|
286
319
|
$width: itemWidth,
|
|
287
320
|
onDragEnd: handleDragEnd,
|
|
288
321
|
onDragStart: handleDragStart,
|
|
289
|
-
onClick: () => handleClick(currentId, currentIndex)
|
|
322
|
+
onClick: () => handleClick(currentId, currentIndex),
|
|
323
|
+
style: {
|
|
324
|
+
backgroundColor: thumbBackgroundColor
|
|
325
|
+
}
|
|
290
326
|
}), /*#__PURE__*/_react2.default.createElement(_SliderButton.StyledSliderButtonWrapper, {
|
|
291
327
|
$isDisabled: isDisabled,
|
|
292
328
|
$width: !isSliderBigger ? dragRange.right + itemWidth : dragRange.right,
|
|
293
|
-
ref: sliderButtonWrapperRef
|
|
294
|
-
|
|
329
|
+
ref: sliderButtonWrapperRef,
|
|
330
|
+
style: {
|
|
331
|
+
backgroundColor
|
|
332
|
+
}
|
|
333
|
+
}, /*#__PURE__*/_react2.default.createElement(_react.AnimatePresence, null, /*#__PURE__*/_react2.default.createElement(_SliderButton.StyledSliderButtonButtonsWrapper, null, buttons)))), [backgroundColor, buttons, currentId, currentIndex, dragRange, handleClick, handleDragEnd, handleDragStart, isDisabled, isSliderBigger, itemWidth, pseudoButtons, scope, thumbBackgroundColor]);
|
|
295
334
|
};
|
|
296
335
|
SliderButton.displayName = 'SliderButton';
|
|
297
336
|
var _default = exports.default = SliderButton;
|