@laerdal/life-react-components 1.5.1-dev.8.full → 1.6.0

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 (108) hide show
  1. package/dist/Button/Iconbutton.cjs +12 -13
  2. package/dist/Button/Iconbutton.cjs.map +1 -1
  3. package/dist/Button/Iconbutton.js +12 -13
  4. package/dist/Button/Iconbutton.js.map +1 -1
  5. package/dist/Card/Card.cjs +101 -0
  6. package/dist/Card/Card.cjs.map +1 -0
  7. package/dist/Card/Card.d.ts +23 -0
  8. package/dist/Card/Card.js +74 -0
  9. package/dist/Card/Card.js.map +1 -0
  10. package/dist/Card/CardBottomSection.cjs +133 -0
  11. package/dist/Card/CardBottomSection.cjs.map +1 -0
  12. package/dist/Card/CardBottomSection.d.ts +22 -0
  13. package/dist/Card/CardBottomSection.js +105 -0
  14. package/dist/Card/CardBottomSection.js.map +1 -0
  15. package/dist/Card/CardMiddleSection.cjs +100 -0
  16. package/dist/Card/CardMiddleSection.cjs.map +1 -0
  17. package/dist/Card/CardMiddleSection.d.ts +14 -0
  18. package/dist/Card/CardMiddleSection.js +76 -0
  19. package/dist/Card/CardMiddleSection.js.map +1 -0
  20. package/dist/Card/CardTopSection.cjs +112 -0
  21. package/dist/Card/CardTopSection.cjs.map +1 -0
  22. package/dist/Card/CardTopSection.d.ts +19 -0
  23. package/dist/Card/CardTopSection.js +85 -0
  24. package/dist/Card/CardTopSection.js.map +1 -0
  25. package/dist/Card/index.cjs +52 -0
  26. package/dist/Card/index.cjs.map +1 -0
  27. package/dist/Card/index.d.ts +5 -0
  28. package/dist/Card/index.js +6 -0
  29. package/dist/Card/index.js.map +1 -0
  30. package/dist/Dropdown/BasicDropdown.cjs +38 -55
  31. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  32. package/dist/Dropdown/BasicDropdown.js +36 -53
  33. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  34. package/dist/Dropdown/CommonStyling.cjs +9 -17
  35. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  36. package/dist/Dropdown/CommonStyling.d.ts +0 -3
  37. package/dist/Dropdown/CommonStyling.js +8 -12
  38. package/dist/Dropdown/CommonStyling.js.map +1 -1
  39. package/dist/Dropdown/DropdownButton.cjs +11 -24
  40. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  41. package/dist/Dropdown/DropdownButton.js +11 -24
  42. package/dist/Dropdown/DropdownButton.js.map +1 -1
  43. package/dist/Dropdown/DropdownContent.cjs +21 -12
  44. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  45. package/dist/Dropdown/DropdownContent.js +21 -12
  46. package/dist/Dropdown/DropdownContent.js.map +1 -1
  47. package/dist/Dropdown/DropdownFilter.cjs +43 -46
  48. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  49. package/dist/Dropdown/DropdownFilter.js +41 -45
  50. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  51. package/dist/LinearProgress/LinearProgress.cjs +142 -0
  52. package/dist/LinearProgress/LinearProgress.cjs.map +1 -0
  53. package/dist/LinearProgress/LinearProgress.d.ts +25 -0
  54. package/dist/LinearProgress/LinearProgress.js +111 -0
  55. package/dist/LinearProgress/LinearProgress.js.map +1 -0
  56. package/dist/LinearProgress/index.cjs +32 -0
  57. package/dist/LinearProgress/index.cjs.map +1 -0
  58. package/dist/LinearProgress/index.d.ts +3 -0
  59. package/dist/LinearProgress/index.js +4 -0
  60. package/dist/LinearProgress/index.js.map +1 -0
  61. package/dist/Modals/ModalContainer.cjs +8 -3
  62. package/dist/Modals/ModalContainer.cjs.map +1 -1
  63. package/dist/Modals/ModalContainer.d.ts +1 -0
  64. package/dist/Modals/ModalContainer.js +8 -3
  65. package/dist/Modals/ModalContainer.js.map +1 -1
  66. package/dist/Modals/ModalDialog.cjs +5 -2
  67. package/dist/Modals/ModalDialog.cjs.map +1 -1
  68. package/dist/Modals/ModalDialog.d.ts +1 -0
  69. package/dist/Modals/ModalDialog.js +5 -2
  70. package/dist/Modals/ModalDialog.js.map +1 -1
  71. package/dist/SegmentControl/SegmentControl.cjs +99 -0
  72. package/dist/SegmentControl/SegmentControl.cjs.map +1 -0
  73. package/dist/SegmentControl/SegmentControl.d.ts +19 -0
  74. package/dist/SegmentControl/SegmentControl.js +71 -0
  75. package/dist/SegmentControl/SegmentControl.js.map +1 -0
  76. package/dist/SegmentControl/index.cjs +16 -0
  77. package/dist/SegmentControl/index.cjs.map +1 -0
  78. package/dist/SegmentControl/index.d.ts +3 -0
  79. package/dist/SegmentControl/index.js +3 -0
  80. package/dist/SegmentControl/index.js.map +1 -0
  81. package/dist/Table/TableFooter.cjs +1 -1
  82. package/dist/Table/TableFooter.cjs.map +1 -1
  83. package/dist/Table/TableFooter.js +1 -1
  84. package/dist/Table/TableFooter.js.map +1 -1
  85. package/dist/Table/TableStyles.cjs +1 -1
  86. package/dist/Table/TableStyles.cjs.map +1 -1
  87. package/dist/Table/TableStyles.js +1 -1
  88. package/dist/Table/TableStyles.js.map +1 -1
  89. package/dist/Tag/Tag.cjs +92 -0
  90. package/dist/Tag/Tag.cjs.map +1 -0
  91. package/dist/Tag/Tag.d.ts +9 -0
  92. package/dist/Tag/Tag.js +70 -0
  93. package/dist/Tag/Tag.js.map +1 -0
  94. package/dist/Tag/index.cjs +16 -0
  95. package/dist/Tag/index.cjs.map +1 -0
  96. package/dist/Tag/index.d.ts +2 -0
  97. package/dist/Tag/index.js +2 -0
  98. package/dist/Tag/index.js.map +1 -0
  99. package/dist/common/InputStyling.cjs +1 -1
  100. package/dist/common/InputStyling.cjs.map +1 -1
  101. package/dist/common/InputStyling.js +1 -1
  102. package/dist/common/InputStyling.js.map +1 -1
  103. package/dist/index.cjs +99 -0
  104. package/dist/index.cjs.map +1 -1
  105. package/dist/index.d.ts +5 -0
  106. package/dist/index.js +5 -0
  107. package/dist/index.js.map +1 -1
  108. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["React","styled","Button","Size","ButtonDropdownContentStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","Checkbox","RadioButton","Z_INDEXES","MenuItem","DDContainer","div","white","props","width","dropdown","isButton","alignLeft","neutral_100","size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","neutral_600","neutral_500","MenuContentContainer","Bold","Small","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","keyCode","preventDefault","focusedNow","undefined","filtered","haveTopItem","i","disabled","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","ref","createRef","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","stopPropagation","getElements","number","customContent","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling } from './CommonStyling';\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{size? : Size}>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n > *:active,\n > *.active{\n z-index: ${Z_INDEXES.active};\n }\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n \nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n\n\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\n\nconst MenuContentContainer = styled.div<{size? : Size}>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{size? : Size}>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' : \n props.size == Size.Medium ? '12px' : \n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{size?:Size}>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{size?:Size}>`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n \n padding: ${props => props.size == Size.Small || !props.size ? '0px 16px' : '8px 16px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n}) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n if(focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n const focusThis = focused == 0 && !haveTopItem() ? 1 : focused;\n if (focusThis != focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)){\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n \n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} label={selectedFirst?.displayLabel ?? selectedFirst?.value} \n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem \n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false} \n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }} />\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected:boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected:boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem \n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n item={item}\n size={size}\n active={selectedValues?.includes(item.value)} \n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }} />\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef} scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\" />\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => \n {\n if(customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
1
+ {"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["React","styled","Button","Size","ButtonDropdownContentStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","Checkbox","RadioButton","Z_INDEXES","MenuItem","DDContainer","div","white","props","width","dropdown","isButton","alignLeft","neutral_100","size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","neutral_600","neutral_500","MenuContentContainer","Bold","Small","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","key","preventDefault","focusedNow","undefined","filtered","haveTopItem","i","disabled","shiftKey","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","ref","createRef","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","stopPropagation","getElements","number","customContent","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport {Size} from '../types';\nimport {ButtonDropdownContentStyling} from './CommonStyling';\nimport {\n ComponentLStyling,\n ComponentXLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle\n} from '../styles/typography';\nimport {COLORS} from '../styles';\nimport {Checkbox, RadioButton} from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{ size?: Size }>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n\n > *:active,\n > *.active {\n z-index: ${Z_INDEXES.active};\n }\n\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n\n word-break: break-word;\n }\n\n /* width */\n\n ::-webkit-scrollbar {\n width: 4px;\n cursor: pointer;\n }\n\n /* Track */\n\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{ size?: Size }>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' :\n props.size == Size.Medium ? '12px' :\n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{ size?: Size }>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{ size?: Size, scrollable?: boolean }>`\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.neutral_200};` : '')}\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\n\n padding: ${(props) => props.size === Size.Small || !props.size\n ? '4px 16px 0px'\n : props.size === Size.Medium\n ? '12px 16px 8px'\n : '16px 16px 12px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n }) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n if (focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Tab') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n e.shiftKey ? focusedNow-- : focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n const focusThis = focused === 0 && !haveTopItem() ? 1 : focused;\n if (focusThis !== focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen, focused]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n\n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {\n }} label={selectedFirst?.displayLabel ?? selectedFirst?.value}\n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem\n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n item={item}\n size={size}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef}\n scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\"/>\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => {\n if (customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
@@ -29,6 +29,8 @@ var _types = require("../types");
29
29
 
30
30
  var _styling = require("../InputFields/styling");
31
31
 
32
+ var _common = require("../common");
33
+
32
34
  var _jsxRuntime = require("react/jsx-runtime");
33
35
 
34
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -93,30 +95,25 @@ var DropdownFilter = function DropdownFilter(_ref) {
93
95
  focused = _React$useState14[0],
94
96
  setFocused = _React$useState14[1];
95
97
 
96
- var styledFieldRef = React.useRef(null);
97
98
  var inputRef = React.useRef(null);
99
+ var styledFieldRef = (0, _common.useFocusVisibleRef)([inputRef]);
98
100
 
99
101
  var handleKeyPress = function handleKeyPress(e) {
100
- if (styledFieldRef !== null && styledFieldRef !== void 0 && styledFieldRef.current && styledFieldRef.current.contains(e.target)) {
101
- if (e.keyCode === 13 && !locked) {
102
- var matches = list === null || list === void 0 ? void 0 : list.filter(function (c) {
103
- return c.label.toLowerCase() === input.toLowerCase();
104
- });
105
-
106
- if (matches.length === 1 && onSelect) {
107
- onSelect(matches[0].label);
108
- setInput(matches[0].label);
109
- }
102
+ if (e.key === 'Enter' && !locked) {
103
+ var matches = list === null || list === void 0 ? void 0 : list.filter(function (c) {
104
+ return c.label.toLowerCase() === input.toLowerCase();
105
+ });
106
+
107
+ if (matches.length === 1 && onSelect) {
108
+ onSelect(matches[0].label);
109
+ setInput(matches[0].label);
110
+ }
110
111
 
111
- if (!isOpen) setFocused(0);
112
- setIsOpen(!isOpen);
112
+ if (!isOpen) setFocused(0);
113
+ setIsOpen(!isOpen);
113
114
 
114
- if (matches.length === 0) {
115
- setInput('');
116
- }
117
- } else if (e.keyCode === 40) {
118
- if (!isOpen) setFocused(0);
119
- setIsOpen(!isOpen);
115
+ if (matches.length === 0) {
116
+ setInput('');
120
117
  }
121
118
  }
122
119
  };
@@ -135,12 +132,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
135
132
  setPlaceholderSearch(placeholder || '');
136
133
  }
137
134
  }, [isOpen]);
138
- React.useEffect(function () {
139
- document.addEventListener('keypress', handleKeyPress);
140
- return function () {
141
- document.removeEventListener('keypress', handleKeyPress);
142
- };
143
- });
144
135
  React.useEffect(function () {
145
136
  setIsLoading(false);
146
137
  if (selectedValues.length > 0 && !list.some(function (x) {
@@ -160,17 +151,36 @@ var DropdownFilter = function DropdownFilter(_ref) {
160
151
  ref: styledFieldRef,
161
152
  className: (isOpen ? 'expanded ' : '').concat(size ? size : ''),
162
153
  onClick: function onClick(e) {
163
- var _inputRef$current;
154
+ if (!locked && !disabled) {
155
+ e.stopPropagation();
156
+ setIsOpen(!isOpen);
164
157
 
165
- e.stopPropagation();
166
- setIsOpen(!isOpen);
167
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
158
+ if (isOpen) {
159
+ var _inputRef$current;
160
+
161
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();
162
+ } else {
163
+ var _inputRef$current2;
164
+
165
+ (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
166
+ }
167
+ }
168
168
  },
169
169
  tabIndex: disabled || locked ? -1 : 0,
170
170
  disabled: disabled || false,
171
171
  locked: locked || false,
172
- showValidationMessage: !!activeValidationMessage,
172
+ isPlaceholder: !input,
173
173
  fontSize: buttonFontSize,
174
+ showValidationMessage: !!activeValidationMessage,
175
+ onKeyPress: function onKeyPress(e) {
176
+ if (e.key === 'Enter') {
177
+ var _inputRef$current3;
178
+
179
+ setIsOpen(true);
180
+ (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.focus();
181
+ }
182
+ },
183
+ onMouseDown: _common.defaultOnMouseDownHandler,
174
184
  "data-testid": "otherdiv_".concat(id),
175
185
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_CommonStyling.InputField, {
176
186
  ref: inputRef,
@@ -191,12 +201,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
191
201
  }
192
202
  }
193
203
  },
194
- onClick: function onClick(e) {
195
- if (!locked && !disabled) {
196
- e.stopPropagation();
197
- setIsOpen(!isOpen);
198
- }
199
- },
200
204
  onFocus: function onFocus() {
201
205
  return setPlaceholderSearch('');
202
206
  },
@@ -204,15 +208,12 @@ var DropdownFilter = function DropdownFilter(_ref) {
204
208
  return setPlaceholderSearch(placeholder || '');
205
209
  },
206
210
  required: required,
207
- tabIndex: disabled || locked ? -1 : 0,
211
+ tabIndex: -1,
208
212
  disabled: disabled || false
209
213
  }), isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {
210
214
  size: _types.Size.Small,
211
215
  color: _styles.COLORS.neutral_600
212
216
  }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
213
- onClick: function onClick() {
214
- return setIsOpen(!isOpen);
215
- },
216
217
  className: 'dropdown-arrow',
217
218
  children: isOpen && !locked && !disabled ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowDropUp, {
218
219
  size: "24px",
@@ -228,11 +229,8 @@ var DropdownFilter = function DropdownFilter(_ref) {
228
229
  var renderButtonDropdown = function renderButtonDropdown() {
229
230
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CommonStyling.ButtonDropdownWrapper, {
230
231
  onClick: function onClick(e) {
231
- var _inputRef$current2;
232
-
233
232
  e.stopPropagation();
234
233
  setIsOpen(!isOpen);
235
- (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
236
234
  },
237
235
  disabled: disabled,
238
236
  locked: locked,
@@ -240,6 +238,8 @@ var DropdownFilter = function DropdownFilter(_ref) {
240
238
  ref: styledFieldRef,
241
239
  className: (isOpen ? 'expanded ' : '').concat(size ? size + ' ' : '').concat(isButton ? 'button' : ''),
242
240
  tabIndex: disabled || locked ? -1 : 0,
241
+ onKeyPress: handleKeyPress,
242
+ onMouseDown: _common.defaultOnMouseDownHandler,
243
243
  disabled: disabled || false,
244
244
  locked: locked || false,
245
245
  showValidationMessage: !!activeValidationMessage,
@@ -251,9 +251,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
251
251
  size: _types.Size.Small,
252
252
  color: _styles.COLORS.neutral_600
253
253
  }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
254
- onClick: function onClick() {
255
- return setIsOpen(!isOpen);
256
- },
257
254
  className: 'dropdown-arrow',
258
255
  children: isOpen && !locked && !disabled ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowDropUp, {
259
256
  size: "24px",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/DropdownFilter.tsx"],"names":["DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","scrollable","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","React","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","focused","setFocused","styledFieldRef","useRef","inputRef","handleKeyPress","e","current","contains","target","keyCode","matches","filter","c","label","toLowerCase","length","useEffect","some","x","document","addEventListener","removeEventListener","renderStandardDropdown","concat","stopPropagation","focus","Math","floor","random","value","Size","Small","COLORS","neutral_600","renderButtonDropdown","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","customContent","warning_400"],"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 { StyledField, Dropdown, ButtonDropdownWrapper, InputField } from './CommonStyling';\nimport DropdownContent from './DropdownContent';\nimport { Size } from '../types'\nimport { AutofilledMessage, WarningMessage } from '../InputFields/styling';\n\nexport interface DropdownFilterItem {\n label: string;\n customContent?: React.ReactNode;\n}\n\ninterface DropdownFilterProps {\n id: string;\n list: DropdownFilterItem[];\n placeholder?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n initalValue?: string;\n required?: boolean;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n disabled?: boolean;\n locked?: boolean;\n isButton?: boolean;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n scrollable?: boolean;\n buttonFontSize?: string;\n keepInitialValue?: boolean;\n icon?: React.ReactNode;\n margin?: string;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n initalValue,\n required,\n disableSorting,\n messageOnNoResults,\n disabled,\n locked,\n scrollable,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\n buttonFontSize,\n keepInitialValue,\n icon,\n margin = '4px 0',\n}: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<Boolean>(false);\n const [input, setInput] = React.useState<string>(initalValue ?? '');\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const styledFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleKeyPress = (e: any) => {\n if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {\n if (e.keyCode === 13 && !locked) {\n const matches = list?.filter((c) => c.label.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0].label);\n setInput(matches[0].label);\n }\n if(!isOpen)\n setFocused(0);\n setIsOpen(!isOpen);\n if (matches.length === 0) {\n setInput('');\n }\n } else if (e.keyCode === 40) {\n if(!isOpen)\n setFocused(0);\n setIsOpen(!isOpen);\n }\n }\n };\n\n React.useEffect(() => {\n if (initalValue || initalValue === '') {\n setInput(initalValue);\n setRestartFilter(true);\n }\n }, [initalValue]);\n\n React.useEffect(() => {\n if (!isOpen && !list.some(x => x.label == input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n document.addEventListener('keypress', handleKeyPress);\n return () => {\n document.removeEventListener('keypress', handleKeyPress);\n };\n });\n\n React.useEffect(() => {\n setIsLoading(false);\n if (selectedValues.length > 0 && !list.some(x => x.label == input))\n setSelectedValues([]);\n\n if(list.some(x => x.label == input))\n {\n setSelectedValues([input]);\n onSelect && onSelect(input);\n }\n }, [input]);\n\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '')}\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}\n data-testid={`otherdiv_${id}`}>\n <InputField\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n value={input}\n className={size ? `${size} value` : 'value'}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\n setIsLoading(true);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onClick={(e: any) => {\n if (!locked && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }\n }}\n onFocus={() => setPlaceholderSearch('')}\n onBlur={() => setPlaceholderSearch(placeholder || '')}\n required={required}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} /> : null}\n\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n );\n };\n\n const renderButtonDropdown = () => (\n <ButtonDropdownWrapper\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n disabled={disabled}\n locked={locked}>\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size + ' ' : '').concat(isButton ? 'button' : '')}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}>\n {icon}\n <div className={'value'}>{initalValue && keepInitialValue ? initalValue : input || placeholderSearch}</div>\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} /> : null}\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n </ButtonDropdownWrapper>\n );\n\n return (\n <>\n <Dropdown isButton={isButton || false} disabled={disabled} locked={locked} className={size ? size : ''} margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n hideOnClickOutside={true}\n size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {},\n onValueUpdate: (values: string[]) => {\n const val = values[0] ?? '';\n setRestartFilter(true);\n setInput(val);\n },\n items: list.map(x => ({ value: x.label, customContent: x.customContent }))\n }}\n filter={!restartFilter ? input : ''}\n setIsOpen={setIsOpen}\n alignLeft={false}\n isButton={isButton || false}\n id={`${id}_dropdowncontent`} />\n )}\n </Dropdown>\n {activeValidationMessage && (\n <WarningMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400} />\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information size=\"20px\" color={COLORS.neutral_600} />\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.cjs"}
1
+ {"version":3,"sources":["../../src/Dropdown/DropdownFilter.tsx"],"names":["DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","scrollable","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","React","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","focused","setFocused","inputRef","useRef","styledFieldRef","handleKeyPress","e","key","matches","filter","c","label","toLowerCase","length","useEffect","some","x","renderStandardDropdown","concat","stopPropagation","current","blur","focus","defaultOnMouseDownHandler","Math","floor","random","target","value","Size","Small","COLORS","neutral_600","renderButtonDropdown","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","customContent","warning_400"],"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 {StyledField, Dropdown, ButtonDropdownWrapper, InputField} from './CommonStyling';\nimport DropdownContent from './DropdownContent';\nimport {Size} from '../types'\nimport {AutofilledMessage, WarningMessage} from '../InputFields/styling';\nimport {defaultOnMouseDownHandler, useFocusVisibleRef} from '../common';\n\nexport interface DropdownFilterItem {\n label: string;\n customContent?: React.ReactNode;\n}\n\ninterface DropdownFilterProps {\n id: string;\n list: DropdownFilterItem[];\n placeholder?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n initalValue?: string;\n required?: boolean;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n disabled?: boolean;\n locked?: boolean;\n isButton?: boolean;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n scrollable?: boolean;\n buttonFontSize?: string;\n keepInitialValue?: boolean;\n icon?: React.ReactNode;\n margin?: string;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n initalValue,\n required,\n disableSorting,\n messageOnNoResults,\n disabled,\n locked,\n scrollable,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\n buttonFontSize,\n keepInitialValue,\n icon,\n margin = '4px 0',\n }: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<Boolean>(false);\n const [input, setInput] = React.useState<string>(initalValue ?? '');\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n const styledFieldRef = useFocusVisibleRef([inputRef]);\n\n const handleKeyPress = (e: React.KeyboardEvent<any>) => {\n if (e.key === 'Enter' && !locked) {\n const matches = list?.filter((c) => c.label.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0].label);\n setInput(matches[0].label);\n }\n if (!isOpen)\n setFocused(0);\n setIsOpen(!isOpen);\n if (matches.length === 0) {\n setInput('');\n }\n }\n };\n\n React.useEffect(() => {\n if (initalValue || initalValue === '') {\n setInput(initalValue);\n setRestartFilter(true);\n }\n }, [initalValue]);\n\n React.useEffect(() => {\n if (!isOpen && !list.some(x => x.label == input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n setIsLoading(false);\n if (selectedValues.length > 0 && !list.some(x => x.label == input))\n setSelectedValues([]);\n\n if (list.some(x => x.label == input)) {\n setSelectedValues([input]);\n onSelect && onSelect(input);\n }\n }, [input]);\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '')}\n onClick={(e: any) => {\n if (!locked && !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 || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\n onKeyPress={e => {\n if (e.key === 'Enter') {\n setIsOpen(true);\n inputRef.current?.focus();\n }\n }}\n onMouseDown={defaultOnMouseDownHandler}\n data-testid={`otherdiv_${id}`}>\n <InputField\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n value={input}\n className={size ? `${size} value` : 'value'}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\n setIsLoading(true);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onFocus={() => setPlaceholderSearch('')}\n onBlur={() => setPlaceholderSearch(placeholder || '')}\n required={required}\n tabIndex={-1}\n disabled={disabled || false}\n />\n\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\n\n <div className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\n </div>\n </StyledField>\n );\n };\n\n const renderButtonDropdown = () => (\n <ButtonDropdownWrapper\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n disabled={disabled}\n locked={locked}>\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size + ' ' : '').concat(isButton ? 'button' : '')}\n tabIndex={disabled || locked ? -1 : 0}\n onKeyPress={handleKeyPress}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}>\n {icon}\n <div className={'value'}>{initalValue && keepInitialValue ? initalValue : input || placeholderSearch}</div>\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\n <div className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\n </div>\n </StyledField>\n </ButtonDropdownWrapper>\n );\n\n return (\n <>\n <Dropdown isButton={isButton || false} disabled={disabled} locked={locked} className={size ? size : ''}\n margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n hideOnClickOutside={true}\n size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {},\n onValueUpdate: (values: string[]) => {\n const val = values[0] ?? '';\n setRestartFilter(true);\n setInput(val);\n },\n items: list.map(x => ({value: x.label, customContent: x.customContent}))\n }}\n filter={!restartFilter ? input : ''}\n setIsOpen={setIsOpen}\n alignLeft={false}\n isButton={isButton || false}\n id={`${id}_dropdowncontent`}/>\n )}\n </Dropdown>\n {activeValidationMessage && (\n <WarningMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400}/>\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information size=\"20px\" color={COLORS.neutral_600}/>\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.cjs"}