@laerdal/life-react-components 1.10.3-dev.18 → 1.10.3-dev.20

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.
Files changed (83) hide show
  1. package/dist/Button/DualFunctionButton.cjs +0 -1
  2. package/dist/Button/DualFunctionButton.cjs.map +1 -1
  3. package/dist/Button/DualFunctionButton.js +0 -1
  4. package/dist/Button/DualFunctionButton.js.map +1 -1
  5. package/dist/ChipsInput/ChipDropdownInput.cjs +0 -1
  6. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  7. package/dist/ChipsInput/ChipDropdownInput.js +0 -1
  8. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  9. package/dist/Dropdown/BasicDropdown.cjs +3 -7
  10. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  11. package/dist/Dropdown/BasicDropdown.d.ts +1 -1
  12. package/dist/Dropdown/BasicDropdown.js +3 -7
  13. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  14. package/dist/Dropdown/CommonStyling.cjs +2 -2
  15. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  16. package/dist/Dropdown/CommonStyling.js +2 -2
  17. package/dist/Dropdown/CommonStyling.js.map +1 -1
  18. package/dist/Dropdown/DropdownButton.cjs +4 -8
  19. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  20. package/dist/Dropdown/DropdownButton.js +4 -8
  21. package/dist/Dropdown/DropdownButton.js.map +1 -1
  22. package/dist/Dropdown/DropdownContent.cjs +53 -94
  23. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  24. package/dist/Dropdown/DropdownContent.d.ts +1 -3
  25. package/dist/Dropdown/DropdownContent.js +53 -92
  26. package/dist/Dropdown/DropdownContent.js.map +1 -1
  27. package/dist/Dropdown/DropdownFilter.cjs +1 -1
  28. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  29. package/dist/Dropdown/DropdownFilter.js +1 -1
  30. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  31. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +8 -7
  32. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
  33. package/dist/GlobalNavigationBar/GlobalNavigationBar.d.ts +2 -1
  34. package/dist/GlobalNavigationBar/GlobalNavigationBar.js +7 -6
  35. package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  36. package/dist/GlobalNavigationBar/desktop/MainMenu.cjs +5 -5
  37. package/dist/GlobalNavigationBar/desktop/MainMenu.cjs.map +1 -1
  38. package/dist/GlobalNavigationBar/desktop/MainMenu.js +5 -5
  39. package/dist/GlobalNavigationBar/desktop/MainMenu.js.map +1 -1
  40. package/dist/GlobalNavigationBar/desktop/RightSideNav.cjs +2 -2
  41. package/dist/GlobalNavigationBar/desktop/RightSideNav.cjs.map +1 -1
  42. package/dist/GlobalNavigationBar/desktop/RightSideNav.js +2 -2
  43. package/dist/GlobalNavigationBar/desktop/RightSideNav.js.map +1 -1
  44. package/dist/GlobalNavigationBar/desktop/UserMenu.cjs +3 -3
  45. package/dist/GlobalNavigationBar/desktop/UserMenu.cjs.map +1 -1
  46. package/dist/GlobalNavigationBar/desktop/UserMenu.js +3 -3
  47. package/dist/GlobalNavigationBar/desktop/UserMenu.js.map +1 -1
  48. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +3 -3
  49. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
  50. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +3 -3
  51. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
  52. package/dist/GlobalNavigationBar/types.d.ts +1 -1
  53. package/dist/InputFields/SearchBar.cjs +0 -1
  54. package/dist/InputFields/SearchBar.cjs.map +1 -1
  55. package/dist/InputFields/SearchBar.js +0 -1
  56. package/dist/InputFields/SearchBar.js.map +1 -1
  57. package/dist/List/ListRow.cjs +1 -1
  58. package/dist/List/ListRow.cjs.map +1 -1
  59. package/dist/List/ListRow.js +1 -1
  60. package/dist/List/ListRow.js.map +1 -1
  61. package/dist/Tabs/TabLink.cjs +2 -2
  62. package/dist/Tabs/TabLink.cjs.map +1 -1
  63. package/dist/Tabs/TabLink.d.ts +1 -1
  64. package/dist/Tabs/TabLink.js +2 -2
  65. package/dist/Tabs/TabLink.js.map +1 -1
  66. package/dist/Tabs/VerticalTabs.cjs +2 -2
  67. package/dist/Tabs/VerticalTabs.cjs.map +1 -1
  68. package/dist/Tabs/VerticalTabs.d.ts +1 -1
  69. package/dist/Tabs/VerticalTabs.js +2 -2
  70. package/dist/Tabs/VerticalTabs.js.map +1 -1
  71. package/dist/{GlobalNavigationBar → common}/NavigationHelper.cjs +0 -0
  72. package/dist/common/NavigationHelper.cjs.map +1 -0
  73. package/dist/{GlobalNavigationBar → common}/NavigationHelper.d.ts +0 -0
  74. package/dist/{GlobalNavigationBar → common}/NavigationHelper.js +0 -0
  75. package/dist/common/NavigationHelper.js.map +1 -0
  76. package/package.json +1 -1
  77. package/dist/GlobalNavigationBar/NavigationHelper.cjs.map +0 -1
  78. package/dist/GlobalNavigationBar/NavigationHelper.js.map +0 -1
  79. package/dist/hooks/useClickOutside.cjs +0 -39
  80. package/dist/hooks/useClickOutside.cjs.map +0 -1
  81. package/dist/hooks/useClickOutside.d.ts +0 -5
  82. package/dist/hooks/useClickOutside.js +0 -26
  83. package/dist/hooks/useClickOutside.js.map +0 -1
@@ -129,7 +129,6 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
129
129
  flatEdge: "right",
130
130
  children: children
131
131
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownContent.default, {
132
- containerRef: dropdownContainerRef,
133
132
  customizationProps: dropdownCustomizationProps,
134
133
  filter: "",
135
134
  ref: dropdownContentRef,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Button/DualFunctionButton.tsx"],"names":["ButtonsContainer","styled","div","props","size","Size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","React","useState","isOpen","setIsOpen","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","useEffect","itemsType","e","key","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport Button, { ButtonProps } from './Button';\nimport { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';\nimport { Dropdown } from '../Dropdown/CommonStyling';\nimport { Size } from '../types';\nimport DropdownContent, { DropdownCustomizationProps } from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport { useClickOutsideRef, useFocusOutsideRef } from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${(props) => (props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px')};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, icon, onClick, ...renderProps } = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(\n () => setIsOpen(false),\n [dropdownContainerRef],\n useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]),\n );\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n return (\n <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button {...renderProps} onClick={onClick} disabled={disabled} type={type} loading={loading} icon={icon} size={size} width={width} variant={variant} flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n containerRef={dropdownContainerRef}\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues ?? selectedValues}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}\n />\n </Dropdown>\n <Button\n variant={variant}\n {...renderProps}\n onKeyPress={(e: any) => {\n if (isOpen) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n testId={'options_toggleBtn'}\n ref={dropdownButtonRef}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n icon={isOpen ? <ArrowDropUp size=\"16px\" /> : <ArrowDropDown size=\"16px\" />}\n flatEdge=\"left\"\n />\n </ButtonsContainer>\n );\n};\n\nexport default DualFunctionButton;\n"],"file":"DualFunctionButton.cjs"}
1
+ {"version":3,"sources":["../../src/Button/DualFunctionButton.tsx"],"names":["ButtonsContainer","styled","div","props","size","Size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","React","useState","isOpen","setIsOpen","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","useEffect","itemsType","e","key","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport Button, { ButtonProps } from './Button';\nimport { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';\nimport { Dropdown } from '../Dropdown/CommonStyling';\nimport { Size } from '../types';\nimport DropdownContent, { DropdownCustomizationProps } from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport { useClickOutsideRef, useFocusOutsideRef } from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${(props) => (props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px')};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, icon, onClick, ...renderProps } = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(\n () => setIsOpen(false),\n [dropdownContainerRef],\n useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]),\n );\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n return (\n <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button {...renderProps} onClick={onClick} disabled={disabled} type={type} loading={loading} icon={icon} size={size} width={width} variant={variant} flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues ?? selectedValues}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}\n />\n </Dropdown>\n <Button\n variant={variant}\n {...renderProps}\n onKeyPress={(e: any) => {\n if (isOpen) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n testId={'options_toggleBtn'}\n ref={dropdownButtonRef}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n icon={isOpen ? <ArrowDropUp size=\"16px\" /> : <ArrowDropDown size=\"16px\" />}\n flatEdge=\"left\"\n />\n </ButtonsContainer>\n );\n};\n\nexport default DualFunctionButton;\n"],"file":"DualFunctionButton.cjs"}
@@ -102,7 +102,6 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
102
102
  flatEdge: "right",
103
103
  children: children
104
104
  })), /*#__PURE__*/_jsx(DropdownContent, {
105
- containerRef: dropdownContainerRef,
106
105
  customizationProps: dropdownCustomizationProps,
107
106
  filter: "",
108
107
  ref: dropdownContentRef,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Button/DualFunctionButton.tsx"],"names":["React","Button","ArrowDropDown","ArrowDropUp","Dropdown","Size","DropdownContent","styled","useClickOutsideRef","useFocusOutsideRef","ButtonsContainer","div","props","size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","useState","isOpen","setIsOpen","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","useEffect","itemsType","e","key","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport Button, { ButtonProps } from './Button';\nimport { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';\nimport { Dropdown } from '../Dropdown/CommonStyling';\nimport { Size } from '../types';\nimport DropdownContent, { DropdownCustomizationProps } from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport { useClickOutsideRef, useFocusOutsideRef } from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${(props) => (props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px')};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, icon, onClick, ...renderProps } = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(\n () => setIsOpen(false),\n [dropdownContainerRef],\n useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]),\n );\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n return (\n <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button {...renderProps} onClick={onClick} disabled={disabled} type={type} loading={loading} icon={icon} size={size} width={width} variant={variant} flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n containerRef={dropdownContainerRef}\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues ?? selectedValues}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}\n />\n </Dropdown>\n <Button\n variant={variant}\n {...renderProps}\n onKeyPress={(e: any) => {\n if (isOpen) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n testId={'options_toggleBtn'}\n ref={dropdownButtonRef}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n icon={isOpen ? <ArrowDropUp size=\"16px\" /> : <ArrowDropDown size=\"16px\" />}\n flatEdge=\"left\"\n />\n </ButtonsContainer>\n );\n};\n\nexport default DualFunctionButton;\n"],"file":"DualFunctionButton.js"}
1
+ {"version":3,"sources":["../../src/Button/DualFunctionButton.tsx"],"names":["React","Button","ArrowDropDown","ArrowDropUp","Dropdown","Size","DropdownContent","styled","useClickOutsideRef","useFocusOutsideRef","ButtonsContainer","div","props","size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","useState","isOpen","setIsOpen","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","useEffect","itemsType","e","key","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport Button, { ButtonProps } from './Button';\nimport { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';\nimport { Dropdown } from '../Dropdown/CommonStyling';\nimport { Size } from '../types';\nimport DropdownContent, { DropdownCustomizationProps } from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport { useClickOutsideRef, useFocusOutsideRef } from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${(props) => (props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px')};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, icon, onClick, ...renderProps } = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(\n () => setIsOpen(false),\n [dropdownContainerRef],\n useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]),\n );\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n return (\n <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button {...renderProps} onClick={onClick} disabled={disabled} type={type} loading={loading} icon={icon} size={size} width={width} variant={variant} flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues ?? selectedValues}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}\n />\n </Dropdown>\n <Button\n variant={variant}\n {...renderProps}\n onKeyPress={(e: any) => {\n if (isOpen) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n testId={'options_toggleBtn'}\n ref={dropdownButtonRef}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n icon={isOpen ? <ArrowDropUp size=\"16px\" /> : <ArrowDropDown size=\"16px\" />}\n flatEdge=\"left\"\n />\n </ButtonsContainer>\n );\n};\n\nexport default DualFunctionButton;\n"],"file":"DualFunctionButton.js"}
@@ -364,7 +364,6 @@ var ChipDropdownInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
364
364
  return setDropdownIsOpen(value);
365
365
  }
366
366
  }, rest)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.DropdownContent, {
367
- containerRef: containerRef,
368
367
  customizationProps: {
369
368
  action: function action() {},
370
369
  pinTopItem: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"names":["Wrapper","styled","div","ChipInputContainer","Z_INDEXES","dropdown","ChipDropdownInput","React","forwardRef","ref","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Size","Medium","icon","disableFiltering","disabled","altPlaceholder","required","rest","useState","givenList","setGivenList","chips","setChips","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","inputRef","useRef","useImperativeHandle","current","useEffect","map","a","find","b","label","index","variant","States","Default","newList","e","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","push","o","length","handleClickOutside","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","SystemIcons","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","handleOnChipRemoved","newChips","splice","chip","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom components.\n */\nimport {ChipInputContainer, ChipInputField} from './ChipInputField';\nimport {Size, States} from '../types';\nimport {DropdownContent, DropdownItem} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {Z_INDEXES} from '../styles';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n\n ${ChipInputContainer} {\n position: relative;\n\n &:focus, &.focus-visible-within {\n z-index: ${Z_INDEXES.dropdown + 1} !important;\n }\n }\n`;\n\n\ninterface ListItem extends ChipItem {\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends ChipInputProps {\n list: ListItem[] | string[];\n onInputChange?: (input: string) => void;\n messageOnNoResults?: string;\n suggestion?: ListItem;\n loading?: boolean;\n maxSelectedItems?: number;\n disableSorting?: boolean;\n disableFiltering?: boolean;\n}\n\nexport const ChipDropdownInput = React.forwardRef<HTMLInputElement | undefined, ChipDropdownInputProps>(({\n list,\n onInputChange,\n disableSorting,\n messageOnNoResults,\n values,\n inputId,\n variants,\n placeholder,\n validationMessage,\n onValueChange,\n suggestion,\n loading,\n maxSelectedItems,\n multiLine = true,\n size = Size.Medium,\n icon,\n disableFiltering,\n disabled,\n altPlaceholder,\n required,\n ...rest\n }: ChipDropdownInputProps, ref) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<ListItem[]>([]);\n const [chips, setChips] = React.useState<ListItem[]>([]);\n\n const [value, setValue] = React.useState<string>('');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [filteredList, setFilteredList] = React.useState<ListItem[]>();\n\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\n const [dropdownValue, setDropdownValue] = React.useState<string>('');\n\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const containerRef = useClickOutsideRef(() => setDropdownIsOpen(false), [], useFocusOutsideRef(() => setDropdownIsOpen(false)));\n const inputRef = React.useRef<any>();\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n\n const list =\n values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\n label: a,\n value: a,\n icon: icon\n })\n .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || States.Default}))\n .map((a, index) => ({...a, icon: a.icon || icon}));\n\n setChips(list);\n }, [values, variants, icon, givenList]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\n setGivenList(newList);\n } else {\n setGivenList(list as ListItem[]);\n }\n }, [list]);\n\n /**\n * filter and sort list if remoteOperations is false\n * */\n React.useEffect(() => {\n let options = [...givenList];\n if (!disableFiltering) {\n if (!restartFilter && value !== '') {\n options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\n (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\n }\n }\n\n if (!disableSorting) {\n options = options.sort();\n }\n\n suggestion && options.push(suggestion);\n\n options = options.filter((o) => !chips.find(a => a.value === o.value));\n setFilteredList(options);\n }, [value, givenList, chips, disableFiltering, disableSorting]);\n\n /**\n * if there is only one active item in dropdown mark it as focused\n * */\n React.useEffect(() => {\n if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\n setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\n } else {\n setDropdownValue('');\n }\n }, [dropdownList, dropdownIsOpen, value]);\n\n const handleClickOutside = (e: any) => {\n if (!containerRef.current?.contains(e.target)) {\n if (dropdownIsOpen) {\n setDropdownIsOpen(false);\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n }\n }\n }\n };\n\n /**\n * register click outside event listener\n * */\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n /**\n * update dropdown items when filtered list changes\n * */\n React.useEffect(() => {\n setDropdownList(filteredList?.map(x => ({\n value: x.value,\n displayLabel: x.label,\n noteLabel: x.secondaryLabel,\n icon: (x.icon ?? icon) && SystemIcons[(x.icon || icon)!]({}),\n disabled: x.disabled,\n })) ?? []);\n }, [filteredList]);\n\n const addChip = (newChip: ListItem) => {\n const newList = [...chips, newChip];\n // Let's add the chip\n setChips(newList);\n onValueChange(newList.map(a => a.value));\n\n setValue('');\n };\n\n const handleInputValueChange = (value: string) => {\n setValue(value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n onInputChange && onInputChange(value);\n }\n\n /**\n * Add chip from dropdown\n * */\n const handleValueUpdate = (values: string[]) => {\n const item = filteredList?.find(a => a.value === values[0]);\n item && addChip(item);\n setRestartFilter(true);\n inputRef?.current?.focus();\n }\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n if (dropdownList?.filter(a => !a.disabled).length === 1) {\n handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\n event.stopPropagation();\n }\n }\n\n if ((event.key === 'ArrowDown' || event.key === 'Down' || event.key === 'ArrowUp' || event.key === 'Up') && !!dropdownList?.length) {\n setDropdownIsOpen(true);\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const handleOnChipRemoved = (index: number): void => {\n // Let's copy the chips\n const newChips = [...chips];\n\n // Let's delete the chip\n // If necessary, let's replace it with a different chip\n newChips.splice(index, 1);\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange(newChips.map((e) => e.value));\n };\n\n return (\n <Wrapper ref={containerRef}>\n <ChipInputField inputId={inputId}\n ref={inputRef}\n items={chips}\n required={required}\n inputValue={value}\n size={size}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n multiLine={multiLine}\n validationMessage={validationMessage}\n loading={loading}\n onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\n onInputValueChange={handleInputValueChange}\n onInputKeyDown={handleInputKeyDown}\n onActivationChange={(value) => setDropdownIsOpen(value)}\n {...rest}/>\n <DropdownContent\n containerRef={containerRef}\n customizationProps={{\n action: () => {\n },\n pinTopItem: true,\n\n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownList\n }}\n focused={focused}\n setFocused={setFocused}\n selectedValues={[dropdownValue]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {\n }}\n isOpen={(!maxSelectedItems || (!!maxSelectedItems && chips.length < maxSelectedItems)) && dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false}\n id={`${inputId}_dropdowncontent`}/>\n\n </Wrapper>\n );\n});\n"],"file":"ChipDropdownInput.cjs"}
1
+ {"version":3,"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"names":["Wrapper","styled","div","ChipInputContainer","Z_INDEXES","dropdown","ChipDropdownInput","React","forwardRef","ref","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Size","Medium","icon","disableFiltering","disabled","altPlaceholder","required","rest","useState","givenList","setGivenList","chips","setChips","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","inputRef","useRef","useImperativeHandle","current","useEffect","map","a","find","b","label","index","variant","States","Default","newList","e","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","push","o","length","handleClickOutside","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","SystemIcons","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","handleOnChipRemoved","newChips","splice","chip","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom components.\n */\nimport {ChipInputContainer, ChipInputField} from './ChipInputField';\nimport {Size, States} from '../types';\nimport {DropdownContent, DropdownItem} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {Z_INDEXES} from '../styles';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n\n ${ChipInputContainer} {\n position: relative;\n\n &:focus, &.focus-visible-within {\n z-index: ${Z_INDEXES.dropdown + 1} !important;\n }\n }\n`;\n\n\ninterface ListItem extends ChipItem {\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends ChipInputProps {\n list: ListItem[] | string[];\n onInputChange?: (input: string) => void;\n messageOnNoResults?: string;\n suggestion?: ListItem;\n loading?: boolean;\n maxSelectedItems?: number;\n disableSorting?: boolean;\n disableFiltering?: boolean;\n}\n\nexport const ChipDropdownInput = React.forwardRef<HTMLInputElement | undefined, ChipDropdownInputProps>(({\n list,\n onInputChange,\n disableSorting,\n messageOnNoResults,\n values,\n inputId,\n variants,\n placeholder,\n validationMessage,\n onValueChange,\n suggestion,\n loading,\n maxSelectedItems,\n multiLine = true,\n size = Size.Medium,\n icon,\n disableFiltering,\n disabled,\n altPlaceholder,\n required,\n ...rest\n }: ChipDropdownInputProps, ref) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<ListItem[]>([]);\n const [chips, setChips] = React.useState<ListItem[]>([]);\n\n const [value, setValue] = React.useState<string>('');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [filteredList, setFilteredList] = React.useState<ListItem[]>();\n\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\n const [dropdownValue, setDropdownValue] = React.useState<string>('');\n\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const containerRef = useClickOutsideRef(() => setDropdownIsOpen(false), [], useFocusOutsideRef(() => setDropdownIsOpen(false)));\n const inputRef = React.useRef<any>();\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n\n const list =\n values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\n label: a,\n value: a,\n icon: icon\n })\n .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || States.Default}))\n .map((a, index) => ({...a, icon: a.icon || icon}));\n\n setChips(list);\n }, [values, variants, icon, givenList]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\n setGivenList(newList);\n } else {\n setGivenList(list as ListItem[]);\n }\n }, [list]);\n\n /**\n * filter and sort list if remoteOperations is false\n * */\n React.useEffect(() => {\n let options = [...givenList];\n if (!disableFiltering) {\n if (!restartFilter && value !== '') {\n options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\n (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\n }\n }\n\n if (!disableSorting) {\n options = options.sort();\n }\n\n suggestion && options.push(suggestion);\n\n options = options.filter((o) => !chips.find(a => a.value === o.value));\n setFilteredList(options);\n }, [value, givenList, chips, disableFiltering, disableSorting]);\n\n /**\n * if there is only one active item in dropdown mark it as focused\n * */\n React.useEffect(() => {\n if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\n setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\n } else {\n setDropdownValue('');\n }\n }, [dropdownList, dropdownIsOpen, value]);\n\n const handleClickOutside = (e: any) => {\n if (!containerRef.current?.contains(e.target)) {\n if (dropdownIsOpen) {\n setDropdownIsOpen(false);\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n }\n }\n }\n };\n\n /**\n * register click outside event listener\n * */\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n /**\n * update dropdown items when filtered list changes\n * */\n React.useEffect(() => {\n setDropdownList(filteredList?.map(x => ({\n value: x.value,\n displayLabel: x.label,\n noteLabel: x.secondaryLabel,\n icon: (x.icon ?? icon) && SystemIcons[(x.icon || icon)!]({}),\n disabled: x.disabled,\n })) ?? []);\n }, [filteredList]);\n\n const addChip = (newChip: ListItem) => {\n const newList = [...chips, newChip];\n // Let's add the chip\n setChips(newList);\n onValueChange(newList.map(a => a.value));\n\n setValue('');\n };\n\n const handleInputValueChange = (value: string) => {\n setValue(value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n onInputChange && onInputChange(value);\n }\n\n /**\n * Add chip from dropdown\n * */\n const handleValueUpdate = (values: string[]) => {\n const item = filteredList?.find(a => a.value === values[0]);\n item && addChip(item);\n setRestartFilter(true);\n inputRef?.current?.focus();\n }\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n if (dropdownList?.filter(a => !a.disabled).length === 1) {\n handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\n event.stopPropagation();\n }\n }\n\n if ((event.key === 'ArrowDown' || event.key === 'Down' || event.key === 'ArrowUp' || event.key === 'Up') && !!dropdownList?.length) {\n setDropdownIsOpen(true);\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const handleOnChipRemoved = (index: number): void => {\n // Let's copy the chips\n const newChips = [...chips];\n\n // Let's delete the chip\n // If necessary, let's replace it with a different chip\n newChips.splice(index, 1);\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange(newChips.map((e) => e.value));\n };\n\n return (\n <Wrapper ref={containerRef}>\n <ChipInputField inputId={inputId}\n ref={inputRef}\n items={chips}\n required={required}\n inputValue={value}\n size={size}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n multiLine={multiLine}\n validationMessage={validationMessage}\n loading={loading}\n onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\n onInputValueChange={handleInputValueChange}\n onInputKeyDown={handleInputKeyDown}\n onActivationChange={(value) => setDropdownIsOpen(value)}\n {...rest}/>\n <DropdownContent\n customizationProps={{\n action: () => {\n },\n pinTopItem: true,\n\n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownList\n }}\n focused={focused}\n setFocused={setFocused}\n selectedValues={[dropdownValue]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {\n }}\n isOpen={(!maxSelectedItems || (!!maxSelectedItems && chips.length < maxSelectedItems)) && dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false}\n id={`${inputId}_dropdowncontent`}/>\n\n </Wrapper>\n );\n});\n"],"file":"ChipDropdownInput.cjs"}
@@ -346,7 +346,6 @@ export var ChipDropdownInput = /*#__PURE__*/React.forwardRef(function (_ref, ref
346
346
  return setDropdownIsOpen(value);
347
347
  }
348
348
  }, rest)), /*#__PURE__*/_jsx(DropdownContent, {
349
- containerRef: containerRef,
350
349
  customizationProps: {
351
350
  action: function action() {},
352
351
  pinTopItem: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"names":["React","styled","ChipInputContainer","ChipInputField","Size","States","DropdownContent","SystemIcons","useClickOutsideRef","useFocusOutsideRef","Z_INDEXES","Wrapper","div","dropdown","ChipDropdownInput","forwardRef","ref","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Medium","icon","disableFiltering","disabled","altPlaceholder","required","rest","useState","givenList","setGivenList","chips","setChips","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","inputRef","useRef","useImperativeHandle","current","useEffect","map","a","find","b","label","index","variant","Default","newList","e","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","push","o","length","handleClickOutside","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","handleOnChipRemoved","newChips","splice","chip","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AAEA;AACA;AACA;;AACA,SAAQC,kBAAR,EAA4BC,cAA5B,QAAiD,kBAAjD;AACA,SAAQC,IAAR,EAAcC,MAAd,QAA2B,UAA3B;AACA,SAAQC,eAAR,QAA4C,aAA5C;AACA,SAAQC,WAAR,QAA0B,UAA1B;AAEA,SAAQC,kBAAR,EAA4BC,kBAA5B,QAAqD,WAArD;AACA,SAAQC,SAAR,QAAwB,WAAxB;;;AAEA,IAAMC,OAAO,GAAGV,MAAM,CAACW,GAAV,oQAKTV,kBALS,EASIQ,SAAS,CAACG,QAAV,GAAqB,CATzB,CAAb;AA+BA,OAAO,IAAMC,iBAAiB,gBAAGd,KAAK,CAACe,UAAN,CAAuE,gBAsBgBC,GAtBhB,EAsBwB;AAAA,MArBjCC,IAqBiC,QArBjCA,IAqBiC;AAAA,MApBjCC,aAoBiC,QApBjCA,aAoBiC;AAAA,MAnBjCC,cAmBiC,QAnBjCA,cAmBiC;AAAA,MAlBjCC,kBAkBiC,QAlBjCA,kBAkBiC;AAAA,MAjBjCC,MAiBiC,QAjBjCA,MAiBiC;AAAA,MAhBjCC,OAgBiC,QAhBjCA,OAgBiC;AAAA,MAfjCC,QAeiC,QAfjCA,QAeiC;AAAA,MAdjCC,WAciC,QAdjCA,WAciC;AAAA,MAbjCC,iBAaiC,QAbjCA,iBAaiC;AAAA,MAZjCC,aAYiC,QAZjCA,aAYiC;AAAA,MAXjCC,UAWiC,QAXjCA,UAWiC;AAAA,MAVjCC,OAUiC,QAVjCA,OAUiC;AAAA,MATjCC,gBASiC,QATjCA,gBASiC;AAAA,4BARjCC,SAQiC;AAAA,MARjCA,SAQiC,+BARrB,IAQqB;AAAA,uBAPjCC,IAOiC;AAAA,MAPjCA,IAOiC,0BAP1B3B,IAAI,CAAC4B,MAOqB;AAAA,MANjCC,IAMiC,QANjCA,IAMiC;AAAA,MALjCC,gBAKiC,QALjCA,gBAKiC;AAAA,MAJjCC,QAIiC,QAJjCA,QAIiC;AAAA,MAHjCC,cAGiC,QAHjCA,cAGiC;AAAA,MAFjCC,QAEiC,QAFjCA,QAEiC;AAAA,MAD9BC,IAC8B;;AAC9H;AACA,wBAAkCtC,KAAK,CAACuC,QAAN,CAA2B,EAA3B,CAAlC;AAAA;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,yBAA0BzC,KAAK,CAACuC,QAAN,CAA2B,EAA3B,CAA1B;AAAA;AAAA,MAAOG,KAAP;AAAA,MAAcC,QAAd;;AAEA,yBAA0B3C,KAAK,CAACuC,QAAN,CAAuB,EAAvB,CAA1B;AAAA;AAAA,MAAOK,KAAP;AAAA,MAAcC,QAAd;;AACA,yBAA0C7C,KAAK,CAACuC,QAAN,CAAwB,KAAxB,CAA1C;AAAA;AAAA,MAAOO,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,yBAAwC/C,KAAK,CAACuC,QAAN,EAAxC;AAAA;AAAA,MAAOS,YAAP;AAAA,MAAqBC,eAArB;;AAEA,0BAA4CjD,KAAK,CAACuC,QAAN,CAAwB,KAAxB,CAA5C;AAAA;AAAA,MAAOW,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,0BAAwCnD,KAAK,CAACuC,QAAN,CAA+B,EAA/B,CAAxC;AAAA;AAAA,MAAOa,YAAP;AAAA,MAAqBC,eAArB;;AACA,0BAA0CrD,KAAK,CAACuC,QAAN,CAAuB,EAAvB,CAA1C;AAAA;AAAA,MAAOe,aAAP;AAAA,MAAsBC,gBAAtB;;AAEA,0BAA8BvD,KAAK,CAACuC,QAAN,CAA8B,IAA9B,CAA9B;AAAA;AAAA,MAAOiB,OAAP;AAAA,MAAgBC,UAAhB;;AAEA,MAAMC,YAAY,GAAGlD,kBAAkB,CAAC;AAAA,WAAM2C,iBAAiB,CAAC,KAAD,CAAvB;AAAA,GAAD,EAAiC,EAAjC,EAAqC1C,kBAAkB,CAAC;AAAA,WAAM0C,iBAAiB,CAAC,KAAD,CAAvB;AAAA,GAAD,CAAvD,CAAvC;AACA,MAAMQ,QAAQ,GAAG3D,KAAK,CAAC4D,MAAN,EAAjB;AAEA5D,EAAAA,KAAK,CAAC6D,mBAAN,CAA0B7C,GAA1B,EAA+B;AAAA,WAAM2C,QAAQ,CAACG,OAAf;AAAA,GAA/B,EAAuD,CAACH,QAAD,CAAvD;AAGA;AACF;AACA;;AACE3D,EAAAA,KAAK,CAAC+D,SAAN,CAAgB,YAAM;AAEpB,QAAM9C,IAAI,GACRI,MAAM,CAAC2C,GAAP,CAAW,UAACC,CAAD;AAAA,aAAOvB,KAAK,CAACwB,IAAN,CAAW,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACvB,KAAF,KAAYqB,CAAhB;AAAA,OAAZ,KAAkCzB,SAAS,CAAC0B,IAAV,CAAe,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACvB,KAAF,KAAYqB,CAAhB;AAAA,OAAhB,CAAlC,IAAwE;AACxFG,QAAAA,KAAK,EAAEH,CADiF;AAExFrB,QAAAA,KAAK,EAAEqB,CAFiF;AAGxFhC,QAAAA,IAAI,EAAEA;AAHkF,OAA/E;AAAA,KAAX,EAKG+B,GALH,CAKO,UAACC,CAAD,EAAII,KAAJ;AAAA,6CAAmBJ,CAAnB;AAAsBK,QAAAA,OAAO,EAAEL,CAAC,CAACK,OAAF,IAAc/C,QAAQ,IAAIA,QAAQ,CAAC8C,KAAD,CAAlC,IAA8ChE,MAAM,CAACkE;AAApF;AAAA,KALP,EAMGP,GANH,CAMO,UAACC,CAAD,EAAII,KAAJ;AAAA,6CAAmBJ,CAAnB;AAAsBhC,QAAAA,IAAI,EAAEgC,CAAC,CAAChC,IAAF,IAAUA;AAAtC;AAAA,KANP,CADF;AASAU,IAAAA,QAAQ,CAAC1B,IAAD,CAAR;AACD,GAZD,EAYG,CAACI,MAAD,EAASE,QAAT,EAAmBU,IAAnB,EAAyBO,SAAzB,CAZH;AAcA;AACF;AACA;;AACExC,EAAAA,KAAK,CAAC+D,SAAN,CAAgB,YAAM;AACpB,QAAI,OAAO9C,IAAI,CAAC,CAAD,CAAX,KAAmB,QAAvB,EAAiC;AAC/B,UAAMuD,OAAmB,GAAIvD,IAAD,CAAmB+C,GAAnB,CAAuB,UAACS,CAAD;AAAA,eAAgB;AAACL,UAAAA,KAAK,EAAEK,CAAR;AAAW7B,UAAAA,KAAK,EAAE6B;AAAlB,SAAhB;AAAA,OAAvB,CAA5B;AACAhC,MAAAA,YAAY,CAAC+B,OAAD,CAAZ;AACD,KAHD,MAGO;AACL/B,MAAAA,YAAY,CAACxB,IAAD,CAAZ;AACD;AACF,GAPD,EAOG,CAACA,IAAD,CAPH;AASA;AACF;AACA;;AACEjB,EAAAA,KAAK,CAAC+D,SAAN,CAAgB,YAAM;AACpB,QAAIW,OAAO,sBAAOlC,SAAP,CAAX;;AACA,QAAI,CAACN,gBAAL,EAAuB;AACrB,UAAI,CAACY,aAAD,IAAkBF,KAAK,KAAK,EAAhC,EAAoC;AAClC8B,QAAAA,OAAO,GAAGA,OAAO,CAACC,MAAR,CAAe,UAACC,MAAD;AAAA;;AAAA,iBAAYA,MAAM,CAACR,KAAP,CAAaS,WAAb,GAA2BC,OAA3B,CAAmClC,KAAK,CAACiC,WAAN,EAAnC,MAA4D,CAAC,CAA7D,IAClCD,MAAM,CAACG,cAAP,IAAyB,0BAAAH,MAAM,CAACG,cAAP,gFAAuBF,WAAvB,GAAqCC,OAArC,CAA6ClC,KAAK,CAACiC,WAAN,EAA7C,OAAsE,CAAC,CAD1E;AAAA,SAAf,CAAV;AAED;AACF;;AAED,QAAI,CAAC1D,cAAL,EAAqB;AACnBuD,MAAAA,OAAO,GAAGA,OAAO,CAACM,IAAR,EAAV;AACD;;AAEDrD,IAAAA,UAAU,IAAI+C,OAAO,CAACO,IAAR,CAAatD,UAAb,CAAd;AAEA+C,IAAAA,OAAO,GAAGA,OAAO,CAACC,MAAR,CAAe,UAACO,CAAD;AAAA,aAAO,CAACxC,KAAK,CAACwB,IAAN,CAAW,UAAAD,CAAC;AAAA,eAAIA,CAAC,CAACrB,KAAF,KAAYsC,CAAC,CAACtC,KAAlB;AAAA,OAAZ,CAAR;AAAA,KAAf,CAAV;AACAK,IAAAA,eAAe,CAACyB,OAAD,CAAf;AACD,GAjBD,EAiBG,CAAC9B,KAAD,EAAQJ,SAAR,EAAmBE,KAAnB,EAA0BR,gBAA1B,EAA4Cf,cAA5C,CAjBH;AAmBA;AACF;AACA;;AACEnB,EAAAA,KAAK,CAAC+D,SAAN,CAAgB,YAAM;AACpB,QAAIb,cAAc,IAAI,CAAC,CAACN,KAApB,IAA6B,CAAAQ,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEuB,MAAd,CAAqB,UAAAV,CAAC;AAAA,aAAI,CAACA,CAAC,CAAC9B,QAAP;AAAA,KAAtB,EAAuCgD,MAAvC,MAAkD,CAAnF,EAAsF;AACpF5B,MAAAA,gBAAgB,CAACH,YAAY,CAACc,IAAb,CAAkB,UAAAD,CAAC;AAAA,eAAI,CAACA,CAAC,CAAC9B,QAAP;AAAA,OAAnB,EAAqCS,KAAtC,CAAhB;AACD,KAFD,MAEO;AACLW,MAAAA,gBAAgB,CAAC,EAAD,CAAhB;AACD;AACF,GAND,EAMG,CAACH,YAAD,EAAeF,cAAf,EAA+BN,KAA/B,CANH;;AAQA,MAAMwC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACX,CAAD,EAAY;AAAA;;AACrC,QAAI,2BAACf,YAAY,CAACI,OAAd,kDAAC,sBAAsBuB,QAAtB,CAA+BZ,CAAC,CAACa,MAAjC,CAAD,CAAJ,EAA+C;AAC7C,UAAIpC,cAAJ,EAAoB;AAClBC,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;;AACA,YAAI,CAACX,SAAS,CAAC0B,IAAV,CAAe,UAACO,CAAD;AAAA,iBAAOA,CAAC,CAAC7B,KAAF,KAAYA,KAAnB;AAAA,SAAf,CAAL,EAA+C;AAC7CC,UAAAA,QAAQ,CAAC,EAAD,CAAR;AACD;AACF;AACF;AACF,GATD;AAWA;AACF;AACA;;;AACE7C,EAAAA,KAAK,CAAC+D,SAAN,CAAgB,YAAM;AACpBwB,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,OAA1B,EAAmCJ,kBAAnC;AACA,WAAO,YAAM;AACXG,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,OAA7B,EAAsCL,kBAAtC;AACD,KAFD;AAGD,GALD;AAOA;AACF;AACA;;AACEpF,EAAAA,KAAK,CAAC+D,SAAN,CAAgB,YAAM;AAAA;;AACpBV,IAAAA,eAAe,sBAACL,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAEgB,GAAd,CAAkB,UAAA0B,CAAC;AAAA;;AAAA,aAAK;AACtC9C,QAAAA,KAAK,EAAE8C,CAAC,CAAC9C,KAD6B;AAEtC+C,QAAAA,YAAY,EAAED,CAAC,CAACtB,KAFsB;AAGtCwB,QAAAA,SAAS,EAAEF,CAAC,CAACX,cAHyB;AAItC9C,QAAAA,IAAI,EAAE,YAACyD,CAAC,CAACzD,IAAH,6CAAWA,IAAX,KAAoB1B,WAAW,CAAEmF,CAAC,CAACzD,IAAF,IAAUA,IAAZ,CAAX,CAA+B,EAA/B,CAJY;AAKtCE,QAAAA,QAAQ,EAAEuD,CAAC,CAACvD;AAL0B,OAAL;AAAA,KAAnB,CAAD,iEAMR,EANQ,CAAf;AAOD,GARD,EAQG,CAACa,YAAD,CARH;;AAUA,MAAM6C,OAAO,GAAG,SAAVA,OAAU,CAACC,OAAD,EAAuB;AACrC,QAAMtB,OAAO,gCAAO9B,KAAP,IAAcoD,OAAd,EAAb,CADqC,CAErC;;AACAnD,IAAAA,QAAQ,CAAC6B,OAAD,CAAR;AACA9C,IAAAA,aAAa,CAAC8C,OAAO,CAACR,GAAR,CAAY,UAAAC,CAAC;AAAA,aAAIA,CAAC,CAACrB,KAAN;AAAA,KAAb,CAAD,CAAb;AAEAC,IAAAA,QAAQ,CAAC,EAAD,CAAR;AACD,GAPD;;AASA,MAAMkD,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACnD,KAAD,EAAmB;AAChDC,IAAAA,QAAQ,CAACD,KAAD,CAAR;AACAG,IAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACAI,IAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACAjC,IAAAA,aAAa,IAAIA,aAAa,CAAC0B,KAAD,CAA9B;AACD,GALD;AAOA;AACF;AACA;;;AACE,MAAMoD,iBAAiB,GAAG,SAApBA,iBAAoB,CAAC3E,MAAD,EAAsB;AAAA;;AAC9C,QAAM4E,IAAI,GAAGjD,YAAH,aAAGA,YAAH,uBAAGA,YAAY,CAAEkB,IAAd,CAAmB,UAAAD,CAAC;AAAA,aAAIA,CAAC,CAACrB,KAAF,KAAYvB,MAAM,CAAC,CAAD,CAAtB;AAAA,KAApB,CAAb;AACA4E,IAAAA,IAAI,IAAIJ,OAAO,CAACI,IAAD,CAAf;AACAlD,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACAY,IAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,iCAAAA,QAAQ,CAAEG,OAAV,wEAAmBoC,KAAnB;AACD,GALD;AAOA;AACF;AACA;AACA;;;AACE,MAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAwD;AACjF;AACA,QAAI,CAACA,KAAK,CAACC,GAAN,KAAc,OAAd,IAAyBD,KAAK,CAACC,GAAN,KAAc,GAAxC,KAAgDzD,KAApD,EAA2D;AACzD,UAAI,CAAAQ,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEuB,MAAd,CAAqB,UAAAV,CAAC;AAAA,eAAI,CAACA,CAAC,CAAC9B,QAAP;AAAA,OAAtB,EAAuCgD,MAAvC,MAAkD,CAAtD,EAAyD;AACvDa,QAAAA,iBAAiB,CAAC,CAAC5C,YAAY,CAAEc,IAAd,CAAmB,UAAAD,CAAC;AAAA,iBAAI,CAACA,CAAC,CAAC9B,QAAP;AAAA,SAApB,EAAsCS,KAAvC,CAAD,CAAjB;AACAwD,QAAAA,KAAK,CAACE,eAAN;AACD;AACF;;AAED,QAAI,CAACF,KAAK,CAACC,GAAN,KAAc,WAAd,IAA6BD,KAAK,CAACC,GAAN,KAAc,MAA3C,IAAqDD,KAAK,CAACC,GAAN,KAAc,SAAnE,IAAgFD,KAAK,CAACC,GAAN,KAAc,IAA/F,KAAwG,CAAC,EAACjD,YAAD,aAACA,YAAD,eAACA,YAAY,CAAE+B,MAAf,CAA7G,EAAoI;AAClIhC,MAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD;AACF,GAZD;AAcA;AACF;AACA;AACA;;;AACE,MAAMoD,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAClC,KAAD,EAAyB;AACnD;AACA,QAAMmC,QAAQ,sBAAO9D,KAAP,CAAd,CAFmD,CAInD;AACA;;;AACA8D,IAAAA,QAAQ,CAACC,MAAT,CAAgBpC,KAAhB,EAAuB,CAAvB,EANmD,CAQnD;;AACA1B,IAAAA,QAAQ,oBAAK6D,QAAL,EAAR;AACA9E,IAAAA,aAAa,CAAC8E,QAAQ,CAACxC,GAAT,CAAa,UAACS,CAAD;AAAA,aAAOA,CAAC,CAAC7B,KAAT;AAAA,KAAb,CAAD,CAAb;AACD,GAXD;;AAaA,sBACE,MAAC,OAAD;AAAS,IAAA,GAAG,EAAEc,YAAd;AAAA,4BACE,KAAC,cAAD;AAAgB,MAAA,OAAO,EAAEpC,OAAzB;AACgB,MAAA,GAAG,EAAEqC,QADrB;AAEgB,MAAA,KAAK,EAAEjB,KAFvB;AAGgB,MAAA,QAAQ,EAAEL,QAH1B;AAIgB,MAAA,UAAU,EAAEO,KAJ5B;AAKgB,MAAA,IAAI,EAAEb,IALtB;AAMgB,MAAA,WAAW,EAAEP,WAN7B;AAOgB,MAAA,cAAc,EAAEY,cAPhC;AAQgB,MAAA,QAAQ,EAAED,QAR1B;AASgB,MAAA,SAAS,EAAEL,SAT3B;AAUgB,MAAA,iBAAiB,EAAEL,iBAVnC;AAWgB,MAAA,OAAO,EAAEG,OAXzB;AAYgB,MAAA,YAAY,EAAE,sBAAC8E,IAAD,EAAOrC,KAAP;AAAA,eAAiBkC,mBAAmB,CAAClC,KAAD,CAApC;AAAA,OAZ9B;AAagB,MAAA,kBAAkB,EAAE0B,sBAbpC;AAcgB,MAAA,cAAc,EAAEI,kBAdhC;AAegB,MAAA,kBAAkB,EAAE,4BAACvD,KAAD;AAAA,eAAWO,iBAAiB,CAACP,KAAD,CAA5B;AAAA;AAfpC,OAgBoBN,IAhBpB,EADF,eAkBE,KAAC,eAAD;AACE,MAAA,YAAY,EAAEoB,YADhB;AAEE,MAAA,kBAAkB,EAAE;AAClBiD,QAAAA,MAAM,EAAE,kBAAM,CACb,CAFiB;AAGlBC,QAAAA,UAAU,EAAE,IAHM;AAKlBC,QAAAA,SAAS,EAAE,QALO;AAMlBC,QAAAA,UAAU,EAAE,IANM;AAOlBC,QAAAA,WAAW,EAAE,EAPK;AAQlBC,QAAAA,WAAW,EAAE,KARK;AASlBC,QAAAA,aAAa,EAAEjB,iBATG;AAUlBkB,QAAAA,KAAK,EAAE9D;AAVW,OAFtB;AAcE,MAAA,OAAO,EAAEI,OAdX;AAeE,MAAA,UAAU,EAAEC,UAfd;AAgBE,MAAA,cAAc,EAAE,CAACH,aAAD,CAhBlB;AAiBE,MAAA,kBAAkB,EAAElC,kBAAF,aAAEA,kBAAF,cAAEA,kBAAF,GAAwB,EAjB5C;AAkBE,MAAA,iBAAiB,EAAE,6BAAM,CACxB,CAnBH;AAoBE,MAAA,MAAM,EAAE,CAAC,CAACS,gBAAD,IAAsB,CAAC,CAACA,gBAAF,IAAsBa,KAAK,CAACyC,MAAN,GAAetD,gBAA5D,KAAkFqB,cApB5F;AAqBE,MAAA,SAAS,EAAEC,iBArBb;AAsBE,MAAA,MAAM,EAAE,EAtBV;AAuBE,MAAA,QAAQ,EAAE,KAvBZ;AAwBE,MAAA,EAAE,YAAK7B,OAAL;AAxBJ,MAlBF;AAAA,IADF;AA+CD,CAvPgC,CAA1B;;AAVLL,EAAAA,I;AALA8D,IAAAA,c;AACAnC,IAAAA,K;;AAKA1B,EAAAA,a;AACAE,EAAAA,kB;AACAO,EAAAA,U;AARAoD,IAAAA,c;AACAnC,IAAAA,K;;AAQAhB,EAAAA,O;AACAC,EAAAA,gB;AACAV,EAAAA,c;AACAe,EAAAA,gB","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom components.\n */\nimport {ChipInputContainer, ChipInputField} from './ChipInputField';\nimport {Size, States} from '../types';\nimport {DropdownContent, DropdownItem} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {Z_INDEXES} from '../styles';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n\n ${ChipInputContainer} {\n position: relative;\n\n &:focus, &.focus-visible-within {\n z-index: ${Z_INDEXES.dropdown + 1} !important;\n }\n }\n`;\n\n\ninterface ListItem extends ChipItem {\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends ChipInputProps {\n list: ListItem[] | string[];\n onInputChange?: (input: string) => void;\n messageOnNoResults?: string;\n suggestion?: ListItem;\n loading?: boolean;\n maxSelectedItems?: number;\n disableSorting?: boolean;\n disableFiltering?: boolean;\n}\n\nexport const ChipDropdownInput = React.forwardRef<HTMLInputElement | undefined, ChipDropdownInputProps>(({\n list,\n onInputChange,\n disableSorting,\n messageOnNoResults,\n values,\n inputId,\n variants,\n placeholder,\n validationMessage,\n onValueChange,\n suggestion,\n loading,\n maxSelectedItems,\n multiLine = true,\n size = Size.Medium,\n icon,\n disableFiltering,\n disabled,\n altPlaceholder,\n required,\n ...rest\n }: ChipDropdownInputProps, ref) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<ListItem[]>([]);\n const [chips, setChips] = React.useState<ListItem[]>([]);\n\n const [value, setValue] = React.useState<string>('');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [filteredList, setFilteredList] = React.useState<ListItem[]>();\n\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\n const [dropdownValue, setDropdownValue] = React.useState<string>('');\n\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const containerRef = useClickOutsideRef(() => setDropdownIsOpen(false), [], useFocusOutsideRef(() => setDropdownIsOpen(false)));\n const inputRef = React.useRef<any>();\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n\n const list =\n values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\n label: a,\n value: a,\n icon: icon\n })\n .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || States.Default}))\n .map((a, index) => ({...a, icon: a.icon || icon}));\n\n setChips(list);\n }, [values, variants, icon, givenList]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\n setGivenList(newList);\n } else {\n setGivenList(list as ListItem[]);\n }\n }, [list]);\n\n /**\n * filter and sort list if remoteOperations is false\n * */\n React.useEffect(() => {\n let options = [...givenList];\n if (!disableFiltering) {\n if (!restartFilter && value !== '') {\n options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\n (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\n }\n }\n\n if (!disableSorting) {\n options = options.sort();\n }\n\n suggestion && options.push(suggestion);\n\n options = options.filter((o) => !chips.find(a => a.value === o.value));\n setFilteredList(options);\n }, [value, givenList, chips, disableFiltering, disableSorting]);\n\n /**\n * if there is only one active item in dropdown mark it as focused\n * */\n React.useEffect(() => {\n if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\n setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\n } else {\n setDropdownValue('');\n }\n }, [dropdownList, dropdownIsOpen, value]);\n\n const handleClickOutside = (e: any) => {\n if (!containerRef.current?.contains(e.target)) {\n if (dropdownIsOpen) {\n setDropdownIsOpen(false);\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n }\n }\n }\n };\n\n /**\n * register click outside event listener\n * */\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n /**\n * update dropdown items when filtered list changes\n * */\n React.useEffect(() => {\n setDropdownList(filteredList?.map(x => ({\n value: x.value,\n displayLabel: x.label,\n noteLabel: x.secondaryLabel,\n icon: (x.icon ?? icon) && SystemIcons[(x.icon || icon)!]({}),\n disabled: x.disabled,\n })) ?? []);\n }, [filteredList]);\n\n const addChip = (newChip: ListItem) => {\n const newList = [...chips, newChip];\n // Let's add the chip\n setChips(newList);\n onValueChange(newList.map(a => a.value));\n\n setValue('');\n };\n\n const handleInputValueChange = (value: string) => {\n setValue(value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n onInputChange && onInputChange(value);\n }\n\n /**\n * Add chip from dropdown\n * */\n const handleValueUpdate = (values: string[]) => {\n const item = filteredList?.find(a => a.value === values[0]);\n item && addChip(item);\n setRestartFilter(true);\n inputRef?.current?.focus();\n }\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n if (dropdownList?.filter(a => !a.disabled).length === 1) {\n handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\n event.stopPropagation();\n }\n }\n\n if ((event.key === 'ArrowDown' || event.key === 'Down' || event.key === 'ArrowUp' || event.key === 'Up') && !!dropdownList?.length) {\n setDropdownIsOpen(true);\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const handleOnChipRemoved = (index: number): void => {\n // Let's copy the chips\n const newChips = [...chips];\n\n // Let's delete the chip\n // If necessary, let's replace it with a different chip\n newChips.splice(index, 1);\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange(newChips.map((e) => e.value));\n };\n\n return (\n <Wrapper ref={containerRef}>\n <ChipInputField inputId={inputId}\n ref={inputRef}\n items={chips}\n required={required}\n inputValue={value}\n size={size}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n multiLine={multiLine}\n validationMessage={validationMessage}\n loading={loading}\n onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\n onInputValueChange={handleInputValueChange}\n onInputKeyDown={handleInputKeyDown}\n onActivationChange={(value) => setDropdownIsOpen(value)}\n {...rest}/>\n <DropdownContent\n containerRef={containerRef}\n customizationProps={{\n action: () => {\n },\n pinTopItem: true,\n\n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownList\n }}\n focused={focused}\n setFocused={setFocused}\n selectedValues={[dropdownValue]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {\n }}\n isOpen={(!maxSelectedItems || (!!maxSelectedItems && chips.length < maxSelectedItems)) && dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false}\n id={`${inputId}_dropdowncontent`}/>\n\n </Wrapper>\n );\n});\n"],"file":"ChipDropdownInput.js"}
1
+ {"version":3,"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"names":["React","styled","ChipInputContainer","ChipInputField","Size","States","DropdownContent","SystemIcons","useClickOutsideRef","useFocusOutsideRef","Z_INDEXES","Wrapper","div","dropdown","ChipDropdownInput","forwardRef","ref","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Medium","icon","disableFiltering","disabled","altPlaceholder","required","rest","useState","givenList","setGivenList","chips","setChips","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","inputRef","useRef","useImperativeHandle","current","useEffect","map","a","find","b","label","index","variant","Default","newList","e","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","push","o","length","handleClickOutside","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","handleOnChipRemoved","newChips","splice","chip","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom components.\n */\nimport {ChipInputContainer, ChipInputField} from './ChipInputField';\nimport {Size, States} from '../types';\nimport {DropdownContent, DropdownItem} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {Z_INDEXES} from '../styles';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n\n ${ChipInputContainer} {\n position: relative;\n\n &:focus, &.focus-visible-within {\n z-index: ${Z_INDEXES.dropdown + 1} !important;\n }\n }\n`;\n\n\ninterface ListItem extends ChipItem {\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends ChipInputProps {\n list: ListItem[] | string[];\n onInputChange?: (input: string) => void;\n messageOnNoResults?: string;\n suggestion?: ListItem;\n loading?: boolean;\n maxSelectedItems?: number;\n disableSorting?: boolean;\n disableFiltering?: boolean;\n}\n\nexport const ChipDropdownInput = React.forwardRef<HTMLInputElement | undefined, ChipDropdownInputProps>(({\n list,\n onInputChange,\n disableSorting,\n messageOnNoResults,\n values,\n inputId,\n variants,\n placeholder,\n validationMessage,\n onValueChange,\n suggestion,\n loading,\n maxSelectedItems,\n multiLine = true,\n size = Size.Medium,\n icon,\n disableFiltering,\n disabled,\n altPlaceholder,\n required,\n ...rest\n }: ChipDropdownInputProps, ref) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<ListItem[]>([]);\n const [chips, setChips] = React.useState<ListItem[]>([]);\n\n const [value, setValue] = React.useState<string>('');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [filteredList, setFilteredList] = React.useState<ListItem[]>();\n\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\n const [dropdownValue, setDropdownValue] = React.useState<string>('');\n\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const containerRef = useClickOutsideRef(() => setDropdownIsOpen(false), [], useFocusOutsideRef(() => setDropdownIsOpen(false)));\n const inputRef = React.useRef<any>();\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n\n const list =\n values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\n label: a,\n value: a,\n icon: icon\n })\n .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || States.Default}))\n .map((a, index) => ({...a, icon: a.icon || icon}));\n\n setChips(list);\n }, [values, variants, icon, givenList]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\n setGivenList(newList);\n } else {\n setGivenList(list as ListItem[]);\n }\n }, [list]);\n\n /**\n * filter and sort list if remoteOperations is false\n * */\n React.useEffect(() => {\n let options = [...givenList];\n if (!disableFiltering) {\n if (!restartFilter && value !== '') {\n options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\n (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\n }\n }\n\n if (!disableSorting) {\n options = options.sort();\n }\n\n suggestion && options.push(suggestion);\n\n options = options.filter((o) => !chips.find(a => a.value === o.value));\n setFilteredList(options);\n }, [value, givenList, chips, disableFiltering, disableSorting]);\n\n /**\n * if there is only one active item in dropdown mark it as focused\n * */\n React.useEffect(() => {\n if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\n setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\n } else {\n setDropdownValue('');\n }\n }, [dropdownList, dropdownIsOpen, value]);\n\n const handleClickOutside = (e: any) => {\n if (!containerRef.current?.contains(e.target)) {\n if (dropdownIsOpen) {\n setDropdownIsOpen(false);\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n }\n }\n }\n };\n\n /**\n * register click outside event listener\n * */\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n /**\n * update dropdown items when filtered list changes\n * */\n React.useEffect(() => {\n setDropdownList(filteredList?.map(x => ({\n value: x.value,\n displayLabel: x.label,\n noteLabel: x.secondaryLabel,\n icon: (x.icon ?? icon) && SystemIcons[(x.icon || icon)!]({}),\n disabled: x.disabled,\n })) ?? []);\n }, [filteredList]);\n\n const addChip = (newChip: ListItem) => {\n const newList = [...chips, newChip];\n // Let's add the chip\n setChips(newList);\n onValueChange(newList.map(a => a.value));\n\n setValue('');\n };\n\n const handleInputValueChange = (value: string) => {\n setValue(value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n onInputChange && onInputChange(value);\n }\n\n /**\n * Add chip from dropdown\n * */\n const handleValueUpdate = (values: string[]) => {\n const item = filteredList?.find(a => a.value === values[0]);\n item && addChip(item);\n setRestartFilter(true);\n inputRef?.current?.focus();\n }\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n if (dropdownList?.filter(a => !a.disabled).length === 1) {\n handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\n event.stopPropagation();\n }\n }\n\n if ((event.key === 'ArrowDown' || event.key === 'Down' || event.key === 'ArrowUp' || event.key === 'Up') && !!dropdownList?.length) {\n setDropdownIsOpen(true);\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const handleOnChipRemoved = (index: number): void => {\n // Let's copy the chips\n const newChips = [...chips];\n\n // Let's delete the chip\n // If necessary, let's replace it with a different chip\n newChips.splice(index, 1);\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange(newChips.map((e) => e.value));\n };\n\n return (\n <Wrapper ref={containerRef}>\n <ChipInputField inputId={inputId}\n ref={inputRef}\n items={chips}\n required={required}\n inputValue={value}\n size={size}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n multiLine={multiLine}\n validationMessage={validationMessage}\n loading={loading}\n onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\n onInputValueChange={handleInputValueChange}\n onInputKeyDown={handleInputKeyDown}\n onActivationChange={(value) => setDropdownIsOpen(value)}\n {...rest}/>\n <DropdownContent\n customizationProps={{\n action: () => {\n },\n pinTopItem: true,\n\n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownList\n }}\n focused={focused}\n setFocused={setFocused}\n selectedValues={[dropdownValue]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {\n }}\n isOpen={(!maxSelectedItems || (!!maxSelectedItems && chips.length < maxSelectedItems)) && dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false}\n id={`${inputId}_dropdowncontent`}/>\n\n </Wrapper>\n );\n});\n"],"file":"ChipDropdownInput.js"}
@@ -107,15 +107,13 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
107
107
 
108
108
  var inputRef = React.useRef(null);
109
109
  var styledFieldRef = (0, _common.useFocusVisibleRef)([inputRef]);
110
- var dropdownRef = React.useRef(null);
111
110
 
112
111
  var resetDropdown = function resetDropdown() {
113
112
  setIsOpen(false);
114
113
  setFocused(null);
115
114
  };
116
115
 
117
- var containerRef = (0, _common.useFocusOutsideRef)(resetDropdown, [dropdownRef]);
118
- (0, _common.useClickOutsideRef)(resetDropdown, [], containerRef);
116
+ var containerRef = (0, _common.useClickOutsideRef)(resetDropdown, [], (0, _common.useFocusOutsideRef)(resetDropdown));
119
117
 
120
118
  var handleKeyDown = function handleKeyDown(e) {
121
119
  if (e.key === 'Enter' || e.key === ' ') {
@@ -255,8 +253,6 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
255
253
  })
256
254
  })]
257
255
  })), !readOnly && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownContent.default, {
258
- ref: dropdownRef,
259
- containerRef: containerRef,
260
256
  customizationProps: {
261
257
  itemsType: itemsType,
262
258
  action: action !== null && action !== void 0 ? action : function () {},
@@ -321,8 +317,8 @@ BasicDropdown.propTypes = (_BasicDropdown$propTy = {
321
317
  autofilledMessage: _propTypes.default.string,
322
318
  margin: _propTypes.default.string,
323
319
  minWidth: _propTypes.default.string,
324
- multiSelect: _propTypes.default.oneOf([false]),
325
- value: _propTypes.default.string,
320
+ multiSelect: _propTypes.default.oneOf([true]).isRequired,
321
+ value: _propTypes.default.arrayOf(_propTypes.default.string),
326
322
  onSelect: _propTypes.default.func.isRequired
327
323
  }, (0, _defineProperty2.default)(_BasicDropdown$propTy, "list", _propTypes.default.array.isRequired), (0, _defineProperty2.default)(_BasicDropdown$propTy, "itemsType", _propTypes.default.oneOf(['normal', 'checkbox', 'radio'])), _BasicDropdown$propTy);
328
324
  var _default = BasicDropdown;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/BasicDropdown.tsx"],"names":["BasicDropdown","React","forwardRef","props","ref","id","list","placeholder","messageOnNoResults","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","actionDisabled","pinTopItem","scrollable","maxHeight","disabled","readOnly","isButton","activeValidationMessage","autofilledMessage","size","margin","minWidth","className","onBlur","onSelect","rest","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","focused","setFocused","keyboardNavigated","setKeyboardNavigated","inputRef","useRef","styledFieldRef","dropdownRef","resetDropdown","containerRef","handleKeyDown","e","key","handleValueSelect","values","join","multiSelect","undefined","current","focus","focusVisible","useEffect","value","useImperativeHandle","customSetIsOpen","getDisplayItems","split","map","val","trim","listDisplayLabels","filter","item","includes","l","displayLabel","handleBlur","currentTarget","contains","relatedTarget","cls","concat","defaultOnMouseDownHandler","stopPropagation","blur","Size","Small","COLORS","neutral_600","onValueUpdate","items","critical_400","disableSorting"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {COLORS} from '../styles';\nimport {ArrowDropDown, ArrowDropUp, Information, TechnicalWarning} from '../icons/systemicons/SystemIcons';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport {Dropdown, StyledField, InputField} from './CommonStyling';\nimport DropdownContent, {DropdownItem} from './DropdownContent';\nimport {AutofilledMessage, ErrorMessage} from '../InputFields/styling';\nimport {Size} from '../types';\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusVisibleRef} from '../common';\nimport {useFocusOutsideRef} from '../common';\nimport numberField from '../InputFields/NumberField';\n\ninterface BasicDropdownCommonProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect' | 'placeholder' | 'tabIndex' | 'onMouseDown' | 'onClick' | 'onKeyDown'>{\n list: DropdownItem[];\n itemsType?: 'normal' | 'checkbox' | 'radio';\n action?: () => void;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n pinTopItem?: boolean;\n scrollable?: boolean;\n maxHeight?: string;\n placeholder?: string;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n disabled?: boolean;\n readOnly?: boolean;\n isButton?: boolean;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n margin?: string;\n minWidth?: string;\n}\n\ntype DropdownFilterMultiSelectProps = BasicDropdownCommonProps & {\n multiSelect: true;\n value?: string[];\n onSelect: (value: string[]) => void;\n}\n\ntype DropdownFilterSingleSelectProps = BasicDropdownCommonProps & {\n multiSelect?: false;\n value?: string;\n onSelect: (value: string) => void;\n}\n\ntype DropdownFilterProps = DropdownFilterSingleSelectProps | DropdownFilterMultiSelectProps;\n\nconst BasicDropdown = React.forwardRef((props: DropdownFilterProps, ref) => {\n const {\n id,\n list,\n placeholder,\n messageOnNoResults,\n itemsType = 'normal',\n action,\n actionLabel,\n actionVariant,\n actionIcon,\n actionLoading,\n actionDisabled,\n pinTopItem,\n scrollable = true,\n maxHeight,\n disabled,\n readOnly,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\n margin = '4px 0',\n minWidth,\n className,\n onBlur,\n onSelect,\n ...rest\n } = props;\n\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<boolean>(false);\n const [input, setInput] = React.useState<string>('');\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n const styledFieldRef = useFocusVisibleRef([inputRef]);\n const dropdownRef = React.useRef<HTMLDivElement>(null);\n\n const resetDropdown = () => {\n setIsOpen(false);\n setFocused(null);\n };\n\n const containerRef = useFocusOutsideRef(resetDropdown, [dropdownRef]);\n\n useClickOutsideRef(resetDropdown, [], containerRef);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n setIsOpen(!isOpen);\n setKeyboardNavigated(true);\n }\n };\n\n const handleValueSelect = (values: string[]) => {\n setInput(values.join(', '));\n\n if (props.multiSelect === true) {\n props.onSelect(values);\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\n props.onSelect(values[0]);\n }\n\n //don't close dropdown on item select if have custom action or multiselect\n if (actionLabel || props.multiSelect) return;\n\n if (keyboardNavigated) {\n styledFieldRef.current?.focus({focusVisible: true} as any);\n }\n setIsOpen(false);\n setFocused(null);\n };\n\n React.useEffect(() => {\n if (props.value) {\n if (props.multiSelect) {\n setInput(props.value.join(', '));\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\n setInput(props.value);\n }\n } else {\n setInput('');\n }\n }, [props.value, props.multiSelect]);\n\n React.useEffect(() => {\n setIsLoading(false);\n }, [input]);\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n const customSetIsOpen = (isOpen: boolean) => {\n setIsOpen(isOpen);\n };\n\n const getDisplayItems = () => {\n const values = input.split(',').map((val) => val.trim());\n const listDisplayLabels = list.filter((item) => values.includes(item.value)).map((l) => l.displayLabel);\n return listDisplayLabels.join(', ');\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\n // @ts-ignore\n if (!e.currentTarget.contains(e.relatedTarget)) {\n onBlur && onBlur(e);\n }\n };\n\n const cls = (isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? ' button ' : '').concat(className ? ` ${className}` : '');\n \n return (\n <>\n <Dropdown ref={containerRef}\n isButton={isButton || false}\n className={size ? size : ''}\n readOnly={readOnly}\n disabled={disabled}\n margin={margin}\n onBlur={handleBlur}\n minWidth={minWidth}>\n <StyledField\n ref={styledFieldRef}\n className={cls}\n onMouseDown={defaultOnMouseDownHandler}\n onClick={(e) => {\n if (!readOnly && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\n if (isOpen) {\n inputRef.current?.blur();\n } else {\n inputRef.current?.focus();\n }\n }\n }}\n tabIndex={disabled || readOnly ? -1 : 0}\n disabled={disabled || false}\n readOnly={readOnly || false}\n isPlaceholder={!input}\n placeholder={placeholder}\n showValidationMessage={!!activeValidationMessage}\n onKeyDown={handleKeyDown}\n minWidth={minWidth}\n {...rest}>\n <InputField\n ref={inputRef}\n type=\"search\"\n readOnly\n placeholder={placeholder}\n value={getDisplayItems()}\n className={size ? `${size} value` : 'value'}\n tabIndex={-1}\n disabled={disabled || false}\n />\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\n <div className={'icon dropdown-arrow'}>\n {isOpen ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\n </div>\n </StyledField>\n {!readOnly && !disabled && (\n <DropdownContent\n ref={dropdownRef}\n containerRef={containerRef}\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n actionDisabled: actionDisabled,\n scrollable: scrollable,\n onValueUpdate: handleValueSelect,\n items: list,\n multiSelect: props.multiSelect,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n }}\n focused={focused}\n setFocused={setFocused}\n size={size ?? Size.Small}\n filter={''}\n isOpen={isOpen}\n setIsOpen={customSetIsOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n outline={keyboardNavigated}\n isButton={isButton || false}\n selectedValues={props.multiSelect ? props.value || [] : [props.value || '']}\n setSelectedValues={handleValueSelect}\n id={`${id}_dropdowncontent`}\n />\n )}\n </Dropdown>\n {activeValidationMessage && (\n <ErrorMessage>\n <TechnicalWarning color={COLORS.critical_400}/>\n <span>{activeValidationMessage}</span>\n </ErrorMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage>\n <Information color={COLORS.neutral_600}/>\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n});\n\nexport default BasicDropdown;\n"],"file":"BasicDropdown.cjs"}
1
+ {"version":3,"sources":["../../src/Dropdown/BasicDropdown.tsx"],"names":["BasicDropdown","React","forwardRef","props","ref","id","list","placeholder","messageOnNoResults","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","actionDisabled","pinTopItem","scrollable","maxHeight","disabled","readOnly","isButton","activeValidationMessage","autofilledMessage","size","margin","minWidth","className","onBlur","onSelect","rest","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","focused","setFocused","keyboardNavigated","setKeyboardNavigated","inputRef","useRef","styledFieldRef","resetDropdown","containerRef","handleKeyDown","e","key","handleValueSelect","values","join","multiSelect","undefined","current","focus","focusVisible","useEffect","value","useImperativeHandle","customSetIsOpen","getDisplayItems","split","map","val","trim","listDisplayLabels","filter","item","includes","l","displayLabel","handleBlur","currentTarget","contains","relatedTarget","cls","concat","defaultOnMouseDownHandler","stopPropagation","blur","Size","Small","COLORS","neutral_600","onValueUpdate","items","critical_400","disableSorting"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {COLORS} from '../styles';\nimport {ArrowDropDown, ArrowDropUp, Information, TechnicalWarning} from '../icons/systemicons/SystemIcons';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport {Dropdown, StyledField, InputField} from './CommonStyling';\nimport DropdownContent, {DropdownItem} from './DropdownContent';\nimport {AutofilledMessage, ErrorMessage} from '../InputFields/styling';\nimport {Size} from '../types';\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusVisibleRef} from '../common';\nimport {useFocusOutsideRef} from '../common';\n\ninterface BasicDropdownCommonProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect' | 'placeholder' | 'tabIndex' | 'onMouseDown' | 'onClick' | 'onKeyDown'>{\n list: DropdownItem[];\n itemsType?: 'normal' | 'checkbox' | 'radio';\n action?: () => void;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n pinTopItem?: boolean;\n scrollable?: boolean;\n maxHeight?: string;\n placeholder?: string;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n disabled?: boolean;\n readOnly?: boolean;\n isButton?: boolean;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n margin?: string;\n minWidth?: string;\n}\n\ntype DropdownFilterMultiSelectProps = BasicDropdownCommonProps & {\n multiSelect: true;\n value?: string[];\n onSelect: (value: string[]) => void;\n}\n\ntype DropdownFilterSingleSelectProps = BasicDropdownCommonProps & {\n multiSelect?: false;\n value?: string;\n onSelect: (value: string) => void;\n}\n\ntype DropdownFilterProps = DropdownFilterMultiSelectProps | DropdownFilterSingleSelectProps;\n\nconst BasicDropdown = React.forwardRef((props: DropdownFilterProps, ref) => {\n const {\n id,\n list,\n placeholder,\n messageOnNoResults,\n itemsType = 'normal',\n action,\n actionLabel,\n actionVariant,\n actionIcon,\n actionLoading,\n actionDisabled,\n pinTopItem,\n scrollable = true,\n maxHeight,\n disabled,\n readOnly,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\n margin = '4px 0',\n minWidth,\n className,\n onBlur,\n onSelect,\n ...rest\n } = props;\n\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<boolean>(false);\n const [input, setInput] = React.useState<string>('');\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n const styledFieldRef = useFocusVisibleRef([inputRef]);\n\n const resetDropdown = () => {\n setIsOpen(false);\n setFocused(null);\n };\n\n const containerRef = useClickOutsideRef(resetDropdown, [], useFocusOutsideRef(resetDropdown));\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n setIsOpen(!isOpen);\n setKeyboardNavigated(true);\n }\n };\n\n const handleValueSelect = (values: string[]) => {\n setInput(values.join(', '));\n\n if (props.multiSelect === true) {\n props.onSelect(values);\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\n props.onSelect(values[0]);\n }\n\n //don't close dropdown on item select if have custom action or multiselect\n if (actionLabel || props.multiSelect) return;\n\n if (keyboardNavigated) {\n styledFieldRef.current?.focus({focusVisible: true} as any);\n }\n setIsOpen(false);\n setFocused(null);\n };\n\n React.useEffect(() => {\n if (props.value) {\n if (props.multiSelect) {\n setInput(props.value.join(', '));\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\n setInput(props.value);\n }\n } else {\n setInput('');\n }\n }, [props.value, props.multiSelect]);\n\n React.useEffect(() => {\n setIsLoading(false);\n }, [input]);\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n const customSetIsOpen = (isOpen: boolean) => {\n setIsOpen(isOpen);\n };\n\n const getDisplayItems = () => {\n const values = input.split(',').map((val) => val.trim());\n const listDisplayLabels = list.filter((item) => values.includes(item.value)).map((l) => l.displayLabel);\n return listDisplayLabels.join(', ');\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\n // @ts-ignore\n if (!e.currentTarget.contains(e.relatedTarget)) {\n onBlur && onBlur(e);\n }\n };\n\n const cls = (isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? ' button ' : '').concat(className ? ` ${className}` : '');\n \n return (\n <>\n <Dropdown ref={containerRef}\n isButton={isButton || false}\n className={size ? size : ''}\n readOnly={readOnly}\n disabled={disabled}\n margin={margin}\n onBlur={handleBlur}\n minWidth={minWidth}>\n <StyledField\n ref={styledFieldRef}\n className={cls}\n onMouseDown={defaultOnMouseDownHandler}\n onClick={(e) => {\n if (!readOnly && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\n if (isOpen) {\n inputRef.current?.blur();\n } else {\n inputRef.current?.focus();\n }\n }\n }}\n tabIndex={disabled || readOnly ? -1 : 0}\n disabled={disabled || false}\n readOnly={readOnly || false}\n isPlaceholder={!input}\n placeholder={placeholder}\n showValidationMessage={!!activeValidationMessage}\n onKeyDown={handleKeyDown}\n minWidth={minWidth}\n {...rest}>\n <InputField\n ref={inputRef}\n type=\"search\"\n readOnly\n placeholder={placeholder}\n value={getDisplayItems()}\n className={size ? `${size} value` : 'value'}\n tabIndex={-1}\n disabled={disabled || false}\n />\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\n <div className={'icon dropdown-arrow'}>\n {isOpen ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\n </div>\n </StyledField>\n {!readOnly && !disabled && (\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n actionDisabled: actionDisabled,\n scrollable: scrollable,\n onValueUpdate: handleValueSelect,\n items: list,\n multiSelect: props.multiSelect,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n }}\n focused={focused}\n setFocused={setFocused}\n size={size ?? Size.Small}\n filter={''}\n isOpen={isOpen}\n setIsOpen={customSetIsOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n outline={keyboardNavigated}\n isButton={isButton || false}\n selectedValues={props.multiSelect ? props.value || [] : [props.value || '']}\n setSelectedValues={handleValueSelect}\n id={`${id}_dropdowncontent`}\n />\n )}\n </Dropdown>\n {activeValidationMessage && (\n <ErrorMessage>\n <TechnicalWarning color={COLORS.critical_400}/>\n <span>{activeValidationMessage}</span>\n </ErrorMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage>\n <Information color={COLORS.neutral_600}/>\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n});\n\nexport default BasicDropdown;\n"],"file":"BasicDropdown.cjs"}
@@ -35,6 +35,6 @@ declare type DropdownFilterSingleSelectProps = BasicDropdownCommonProps & {
35
35
  value?: string;
36
36
  onSelect: (value: string) => void;
37
37
  };
38
- declare type DropdownFilterProps = DropdownFilterSingleSelectProps | DropdownFilterMultiSelectProps;
38
+ declare type DropdownFilterProps = DropdownFilterMultiSelectProps | DropdownFilterSingleSelectProps;
39
39
  declare const BasicDropdown: React.ForwardRefExoticComponent<DropdownFilterProps & React.RefAttributes<unknown>>;
40
40
  export default BasicDropdown;
@@ -82,15 +82,13 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
82
82
 
83
83
  var inputRef = React.useRef(null);
84
84
  var styledFieldRef = useFocusVisibleRef([inputRef]);
85
- var dropdownRef = React.useRef(null);
86
85
 
87
86
  var resetDropdown = function resetDropdown() {
88
87
  setIsOpen(false);
89
88
  setFocused(null);
90
89
  };
91
90
 
92
- var containerRef = useFocusOutsideRef(resetDropdown, [dropdownRef]);
93
- useClickOutsideRef(resetDropdown, [], containerRef);
91
+ var containerRef = useClickOutsideRef(resetDropdown, [], useFocusOutsideRef(resetDropdown));
94
92
 
95
93
  var handleKeyDown = function handleKeyDown(e) {
96
94
  if (e.key === 'Enter' || e.key === ' ') {
@@ -230,8 +228,6 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
230
228
  })
231
229
  })]
232
230
  })), !readOnly && !disabled && /*#__PURE__*/_jsx(DropdownContent, {
233
- ref: dropdownRef,
234
- containerRef: containerRef,
235
231
  customizationProps: {
236
232
  itemsType: itemsType,
237
233
  action: action !== null && action !== void 0 ? action : function () {},
@@ -296,8 +292,8 @@ BasicDropdown.propTypes = (_BasicDropdown$propTy = {
296
292
  autofilledMessage: _pt.string,
297
293
  margin: _pt.string,
298
294
  minWidth: _pt.string,
299
- multiSelect: _pt.oneOf([false]),
300
- value: _pt.string,
295
+ multiSelect: _pt.oneOf([true]).isRequired,
296
+ value: _pt.arrayOf(_pt.string),
301
297
  onSelect: _pt.func.isRequired
302
298
  }, _defineProperty(_BasicDropdown$propTy, "list", _pt.array.isRequired), _defineProperty(_BasicDropdown$propTy, "itemsType", _pt.oneOf(['normal', 'checkbox', 'radio'])), _BasicDropdown$propTy);
303
299
  export default BasicDropdown;