@laerdal/life-react-components 1.11.0-dev.16 → 1.11.0-dev.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Button/DualFunctionButton.cjs +22 -11
- package/dist/Button/DualFunctionButton.cjs.map +1 -1
- package/dist/Button/DualFunctionButton.js +22 -11
- package/dist/Button/DualFunctionButton.js.map +1 -1
- package/dist/Button/Iconbutton.cjs +2 -2
- package/dist/Button/Iconbutton.cjs.map +1 -1
- package/dist/Button/Iconbutton.js +2 -2
- package/dist/Button/Iconbutton.js.map +1 -1
- package/dist/ChipsInput/ChipDropdownInput.cjs +32 -21
- package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
- package/dist/ChipsInput/ChipDropdownInput.js +32 -21
- package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
- package/dist/Dropdown/BasicDropdown.cjs +25 -13
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
- package/dist/Dropdown/BasicDropdown.js +25 -13
- package/dist/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/Dropdown/DropdownButton.cjs +19 -9
- package/dist/Dropdown/DropdownButton.cjs.map +1 -1
- package/dist/Dropdown/DropdownButton.js +19 -9
- package/dist/Dropdown/DropdownButton.js.map +1 -1
- package/dist/Dropdown/DropdownContent.cjs +45 -9
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.d.ts +2 -0
- package/dist/Dropdown/DropdownContent.js +45 -9
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/Dropdown/DropdownFilter.cjs +30 -18
- package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
- package/dist/Dropdown/DropdownFilter.js +30 -18
- package/dist/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +2 -24
- package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/CommonStyles.d.ts +0 -5
- package/dist/GlobalNavigationBar/mobile/CommonStyles.js +2 -8
- package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +57 -28
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +53 -28
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
- package/dist/GlobalNavigationBar/types.d.ts +1 -3
- package/dist/InputFields/DatepickerField.cjs +2 -2
- package/dist/InputFields/DatepickerField.cjs.map +1 -1
- package/dist/InputFields/DatepickerField.js +2 -2
- package/dist/InputFields/DatepickerField.js.map +1 -1
- package/dist/QuizButton/QuizButton.cjs +3 -1
- package/dist/QuizButton/QuizButton.cjs.map +1 -1
- package/dist/QuizButton/QuizButton.js +3 -1
- package/dist/QuizButton/QuizButton.js.map +1 -1
- package/dist/Switcher/MobileSwitcherMenu.cjs +4 -17
- package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
- package/dist/Switcher/MobileSwitcherMenu.d.ts +2 -5
- package/dist/Switcher/MobileSwitcherMenu.js +4 -16
- package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
- package/package.json +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs +0 -55
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs.map +0 -1
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.d.ts +0 -6
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js +0 -36
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js.map +0 -1
- package/dist/Switcher/MobileCustomMenuContent.cjs +0 -56
- package/dist/Switcher/MobileCustomMenuContent.cjs.map +0 -1
- package/dist/Switcher/MobileCustomMenuContent.d.ts +0 -8
- package/dist/Switcher/MobileCustomMenuContent.js +0 -39
- package/dist/Switcher/MobileCustomMenuContent.js.map +0 -1
- package/dist/common/ScrollableContainer.cjs +0 -44
- package/dist/common/ScrollableContainer.cjs.map +0 -1
- package/dist/common/ScrollableContainer.d.ts +0 -1
- package/dist/common/ScrollableContainer.js +0 -28
- package/dist/common/ScrollableContainer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["React","styled","Button","Size","ButtonDropdownContentStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","scrollBarStyling","Checkbox","RadioButton","Z_INDEXES","MenuItem","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DDContainer","div","white","dropdown","props","isButton","offsetLeft","offsetTop","neutral_100","size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","Small","MenuContentContainer","Bold","neutral_500","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","Overlay","modal","DropdownContent","forwardRef","ref","id","customizationProps","alignLeft","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","useState","isUp","setIsUp","locationDefined","setLocationDefined","top","left","offset","setOffset","dropdownContentRef","useRef","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","calculateOffset","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","undefined","selectedFirst","newValues","stopPropagation","getElements","customContent","style","cls","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React, {MutableRefObject} from 'react';\nimport styled, {css} 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, focusStyles, scrollBarStyling} from '../styles';\nimport {Checkbox, RadioButton} from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\nimport {defaultOnMouseDownHandler} from '../common';\nimport ReactDOM from 'react-dom';\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\nconst OFFSET_BEFORE_SHOW = 1000000;\n\nexport const DDContainer = styled.div<{ offsetTop: string, offsetLeft: string; isButton: boolean; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n pointer-events: auto;\n position: absolute;\n background-color: ${COLORS.white};\n\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 &.down,\n &.up {\n ${props => `transform: translate(${props.offsetLeft}, ${props.offsetTop});`}\n }\n }\n\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\n\n &.outline:focus:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n outline: 4px solid black;\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n &:focus {\n outline: none;\n }\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: 4px 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`;\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; outline?: boolean }>`\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 *:focus {\n outline: none !important;\n }\n\n ${scrollBarStyling(Size.Small)}\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 Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: ${Z_INDEXES.modal};\n`;\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 selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n outline?: boolean;\n containerRef: React.RefObject<HTMLDivElement>;\n}\n\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n outline,\n containerRef\n }, ref) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({top: '0', left: '0'});\n\n const dropdownContentRef = ref as MutableRefObject<HTMLDivElement> ?? 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 const actionButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n\n const rect = containerRef.current!.getBoundingClientRect();\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\n\n const up = instOffsetWithMenu >= windowHeight;\n\n setOffset({\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\n left: alignLeft ? `calc(-${rect.width}px)`: `calc(-100%)`\n });\n\n setIsUp(up);\n setLocationDefined(true);\n };\n\n const setNewFocusedElement = (index: number) => {\n if (outline) dropdownContentRef.current?.focus();\n\n const newFocusedElement = elRefs[index];\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\n setFocused(index);\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\n\n newFocusedElement.current?.classList.add('dropdown-hover');\n newFocusedElement.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\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 findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\n if (!items[i - 1]?.disabled) {\n return i;\n }\n }\n\n return index;\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\n if (!!focusedNow) {\n\n focusedNow =\n focusedNow === 1 && haveTopItem()\n ? 0\n : findNextActiveIndex(focusedNow, -1, getFilteredItems());\n\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n let focusedNow = focused;\n\n focusedNow =\n !!focusedNow || focusedNow === 0\n ? findNextActiveIndex(focusedNow, 1, getFilteredItems())\n : haveTopItem() ? 0 : 1;\n\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\n e.preventDefault();\n const focusedElement = elRefs[focused];\n if (focusedElement) {\n focusedElement.current?.click();\n }\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\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 if (elRefs?.length !== arrLength) {\n setFocused(null);\n }\n\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength]);\n\n React.useLayoutEffect(() => {\n isOpen && !locationDefined && determineDropUp();\n }, [isOpen, locationDefined]);\n\n const haveTopItem = () => {\n if (!customizationProps.pinTopItem) return false;\n\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 /**\n * when dropdown opens set correct position of focused item\n * */\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\n }\n }, [isOpen, focused]);\n\n /**\n * Reset dropdown content state on close\n * */\n React.useEffect(() => {\n if (!isOpen) {\n setLocationDefined(false);\n for (let elRef of elRefs) {\n elRef.current?.classList.remove('dropdown-hover');\n\n }\n setFocused(null);\n dropdownContentRef.current?.classList.remove('outline');\n dropdownContentRef.current?.blur();\n } else {\n if (outline) {\n dropdownContentRef.current?.classList.add('outline');\n dropdownContentRef.current?.focus();\n }\n }\n }, [isOpen, dropdownContentRef, focused, outline]);\n\n /**\n * Scroll item container to top when dropdown opens\n * */\n React.useEffect(() => {\n if (isOpen && itemsListRef.current) {\n itemsListRef.current.scrollTop = 0;\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n if (isOpen){\n calculateOffset();\n window.addEventListener('scroll', calculateOffset);\n window.addEventListener('resize', calculateOffset);\n }\n return () => {\n window.removeEventListener('scroll', calculateOffset);\n window.addEventListener('resize', calculateOffset);\n }\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 tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n select={() => {\n }}\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 tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\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 tabIndex={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\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 = (messageOnNoResults: string, size: Size) => {\n if (getFilteredItems().length === 0) {\n return (\n <MenuItem item={{value:messageOnNoResults, disabled: true}} size={size} id='noResultsFound' active={false} onClickHandler={e => {}}/>\n );\n }\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item, index) => {\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[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 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 className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 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}_${index + 1}`}\n id={`${id}_${index + 1}`}\n item={item}\n tabIndex={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n size={size}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[index + 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 const calculateOffset = () => {\n const rect = containerRef?.current?.getBoundingClientRect();\n if (rect){\n dropdownContentRef.current.style.left = `${rect.x + rect.width}px`;\n dropdownContentRef.current.style.top = `${rect.y + rect.height}px`;\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\n }\n }\n\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? isUp ? 'up' : 'down' : ''}`\n\n return (\n <Overlay>\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n offsetTop={offset.top}\n offsetLeft={offset.left}\n tabIndex={-1}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={cls}>\n <ListContainer size={size}\n itemsType={customizationProps.itemsType}\n onScroll={handleScroll}\n ref={itemsListRef}\n outline={outline}\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(messageOnNoResults, size)}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button width=\"100%\"\n icon={customizationProps.actionIcon}\n ref={actionButtonRef}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size}\n onClick={() => customizationProps.action() && setIsOpen(false)}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n </Overlay>);\n});\n\nexport default DropdownContent;\n\n"],"file":"DropdownContent.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["React","styled","Button","Size","ButtonDropdownContentStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","scrollBarStyling","Checkbox","RadioButton","Z_INDEXES","MenuItem","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DDContainer","div","white","dropdown","props","isButton","offsetLeft","offsetTop","neutral_100","size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","Small","MenuContentContainer","Bold","neutral_500","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","Overlay","modal","DropdownContent","forwardRef","ref","id","customizationProps","alignLeft","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","ariaRolesType","useState","isUp","setIsUp","locationDefined","setLocationDefined","top","left","offset","setOffset","dropdownContentRef","useRef","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","calculateOffset","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","newValues","stopPropagation","getElements","customContent","style","cls","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React, { MutableRefObject } from 'react';\nimport styled, { css } 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, focusStyles, scrollBarStyling } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\nimport { Z_INDEXES } from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\nimport { defaultOnMouseDownHandler } from '../common';\nimport ReactDOM from 'react-dom';\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\nconst OFFSET_BEFORE_SHOW = 1000000;\n\nexport const DDContainer = styled.div<{ offsetTop: string; offsetLeft: string; isButton: boolean; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n pointer-events: auto;\n position: absolute;\n background-color: ${COLORS.white};\n\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 &.down,\n &.up {\n ${(props) => `transform: translate(${props.offsetLeft}, ${props.offsetTop});`}\n }\n }\n\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\n\n &.outline:focus:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n outline: 4px solid black;\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n &:focus {\n outline: none;\n }\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: 4px 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; outline?: boolean }>`\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 *:focus {\n outline: none !important;\n }\n\n ${scrollBarStyling(Size.Small)}\n`;\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1,\n h2,\n 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' : 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' : 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' : props.size == Size.Medium ? '12px' : 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 ? '4px 16px 0px' : props.size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\n\n button {\n width: 100%;\n }\n`;\n\nconst Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: ${Z_INDEXES.modal};\n`;\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 onActiveDescendantChanged?: (descendantId?: string) => void;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n outline?: boolean;\n containerRef: React.RefObject<HTMLDivElement>;\n ariaRolesType?: 'input' | 'menu';\n}\n\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n outline,\n containerRef,\n onActiveDescendantChanged,\n ariaRolesType = 'menu',\n },\n ref,\n ) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\n\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? 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 const actionButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n\n const rect = containerRef.current!.getBoundingClientRect();\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\n\n const up = instOffsetWithMenu >= windowHeight;\n\n setOffset({\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\n });\n\n setIsUp(up);\n setLocationDefined(true);\n };\n\n const setNewFocusedElement = (index: number) => {\n if (outline) dropdownContentRef.current?.focus();\n\n const newFocusedElement = elRefs[index];\n if (onActiveDescendantChanged) onActiveDescendantChanged(newFocusedElement.current?.id || '');\n\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\n setFocused(index);\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\n\n newFocusedElement.current?.classList.add('dropdown-hover');\n newFocusedElement.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\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 findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\n if (!items[i - 1]?.disabled) {\n return i;\n }\n }\n\n return index;\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\n if (!!focusedNow) {\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\n\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n let focusedNow = focused;\n\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\n\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\n e.preventDefault();\n const focusedElement = elRefs[focused];\n if (focusedElement) {\n focusedElement.current?.click();\n }\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\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 if (elRefs?.length !== arrLength) {\n setFocused(null);\n }\n\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength]);\n\n React.useLayoutEffect(() => {\n isOpen && !locationDefined && determineDropUp();\n }, [isOpen, locationDefined]);\n\n const haveTopItem = () => {\n if (!customizationProps.pinTopItem) return false;\n\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 /**\n * when dropdown opens set correct position of focused item\n * */\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\n }\n }, [isOpen, focused]);\n\n /**\n * Reset dropdown content state on close\n * */\n React.useEffect(() => {\n if (!isOpen) {\n setLocationDefined(false);\n for (let elRef of elRefs) {\n elRef.current?.classList.remove('dropdown-hover');\n }\n setFocused(null);\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\n dropdownContentRef.current?.classList.remove('outline');\n dropdownContentRef.current?.blur();\n } else {\n if (outline) {\n dropdownContentRef.current?.classList.add('outline');\n dropdownContentRef.current?.focus();\n }\n }\n }, [isOpen, dropdownContentRef, focused, outline]);\n\n /**\n * Scroll item container to top when dropdown opens\n * */\n React.useEffect(() => {\n if (isOpen && itemsListRef.current) {\n itemsListRef.current.scrollTop = 0;\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n if (isOpen) {\n calculateOffset();\n window.addEventListener('scroll', calculateOffset);\n window.addEventListener('resize', calculateOffset);\n }\n return () => {\n window.removeEventListener('scroll', calculateOffset);\n window.removeEventListener('resize', calculateOffset);\n };\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 role={ariaRolesType == 'menu' ? 'menuitemradio' : 'option'}\n iconPointerEventsTransparent={true}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\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 role={ariaRolesType == 'menu' ? 'menuitemradio' : 'option'}\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\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)) setIsOpen(false);\n }}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_checkbox_selectall`)}\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 role={ariaRolesType == 'menu' ? 'menuitemradio' : 'option'}\n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n tabIndex={-1}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\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 )}\n </TopItemContainer>\n );\n };\n\n const getElements = (messageOnNoResults: string, size: Size) => {\n if (getFilteredItems().length === 0) {\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\n }\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item, index) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n role={ariaRolesType == 'menu' ? 'menuitemradio' : 'option'}\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${index + 1}`}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\n id={`${id}_${index + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n role={ariaRolesType == 'menu' ? 'menuitemradio' : 'option'}\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n key={`key_${id}_${index + 1}`}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\n id={`${id}_${index + 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 role={ariaRolesType == 'menu' ? 'menuitemradio' : 'option'}\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n item={item}\n tabIndex={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n size={size}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[index + 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 )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n const calculateOffset = () => {\n const rect = containerRef?.current?.getBoundingClientRect();\n if (rect) {\n dropdownContentRef.current.style.left = `${rect.x + rect.width}px`;\n dropdownContentRef.current.style.top = `${rect.y + rect.height}px`;\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\n }\n };\n\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\n\n return (\n <Overlay>\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n offsetTop={offset.top}\n offsetLeft={offset.left}\n tabIndex={-1}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={cls}>\n <ListContainer\n role=\"group\"\n size={size}\n itemsType={customizationProps.itemsType}\n onScroll={handleScroll}\n ref={itemsListRef}\n outline={outline}\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 )}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements(messageOnNoResults, size)}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button\n width=\"100%\"\n role=\"menuitem\"\n icon={customizationProps.actionIcon}\n ref={actionButtonRef}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size}\n onClick={() => customizationProps.action() && setIsOpen(false)}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n </Overlay>\n );\n },\n);\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
|
|
@@ -85,35 +85,40 @@ var DropdownFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
85
85
|
input = _React$useState4[0],
|
|
86
86
|
setInput = _React$useState4[1];
|
|
87
87
|
|
|
88
|
-
var _React$useState5 = React.useState(
|
|
88
|
+
var _React$useState5 = React.useState(),
|
|
89
89
|
_React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
activeDescendant = _React$useState6[0],
|
|
91
|
+
setActiveDescendant = _React$useState6[1];
|
|
92
92
|
|
|
93
|
-
var _React$useState7 = React.useState(
|
|
93
|
+
var _React$useState7 = React.useState(placeholder || ''),
|
|
94
94
|
_React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
placeholderSearch = _React$useState8[0],
|
|
96
|
+
setPlaceholderSearch = _React$useState8[1];
|
|
97
97
|
|
|
98
|
-
var _React$useState9 = React.useState(),
|
|
98
|
+
var _React$useState9 = React.useState(false),
|
|
99
99
|
_React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
restartFilter = _React$useState10[0],
|
|
101
|
+
setRestartFilter = _React$useState10[1];
|
|
102
102
|
|
|
103
|
-
var _React$useState11 = React.useState(
|
|
103
|
+
var _React$useState11 = React.useState(),
|
|
104
104
|
_React$useState12 = (0, _slicedToArray2.default)(_React$useState11, 2),
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
selectedItem = _React$useState12[0],
|
|
106
|
+
setSelectedItem = _React$useState12[1];
|
|
107
107
|
|
|
108
|
-
var _React$useState13 = React.useState(
|
|
108
|
+
var _React$useState13 = React.useState([]),
|
|
109
109
|
_React$useState14 = (0, _slicedToArray2.default)(_React$useState13, 2),
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
selectedValues = _React$useState14[0],
|
|
111
|
+
setSelectedValues = _React$useState14[1];
|
|
112
112
|
|
|
113
|
-
var _React$useState15 = React.useState(
|
|
113
|
+
var _React$useState15 = React.useState(null),
|
|
114
114
|
_React$useState16 = (0, _slicedToArray2.default)(_React$useState15, 2),
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
focused = _React$useState16[0],
|
|
116
|
+
setFocused = _React$useState16[1];
|
|
117
|
+
|
|
118
|
+
var _React$useState17 = React.useState(true),
|
|
119
|
+
_React$useState18 = (0, _slicedToArray2.default)(_React$useState17, 2),
|
|
120
|
+
init = _React$useState18[0],
|
|
121
|
+
setInit = _React$useState18[1];
|
|
117
122
|
|
|
118
123
|
var styledFieldRef = (0, _common.useFocusVisibleRef)();
|
|
119
124
|
var inputRef = (0, _common.useFocusVisibleRef)([styledFieldRef]);
|
|
@@ -283,6 +288,9 @@ var DropdownFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
283
288
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
284
289
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_CommonStyling.Dropdown, {
|
|
285
290
|
ref: containerRef,
|
|
291
|
+
role: "combobox",
|
|
292
|
+
"aria-activedescendant": activeDescendant,
|
|
293
|
+
"aria-multiselectable": true,
|
|
286
294
|
disabled: disabled,
|
|
287
295
|
isButton: false,
|
|
288
296
|
readOnly: readOnly,
|
|
@@ -295,7 +303,11 @@ var DropdownFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
295
303
|
selectedValues: selectedValues,
|
|
296
304
|
setSelectedValues: setSelectedValues,
|
|
297
305
|
size: size !== null && size !== void 0 ? size : _types.Size.Small,
|
|
306
|
+
onActiveDescendantChanged: function onActiveDescendantChanged(e) {
|
|
307
|
+
return setActiveDescendant(e);
|
|
308
|
+
},
|
|
298
309
|
focused: focused,
|
|
310
|
+
ariaRolesType: "input",
|
|
299
311
|
setFocused: setFocused,
|
|
300
312
|
outline: false,
|
|
301
313
|
customizationProps: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Dropdown/DropdownFilter.tsx"],"names":["DropdownFilter","React","forwardRef","ref","id","list","placeholder","onSelect","onInputChange","value","required","messageOnNoResults","disabled","readOnly","scrollable","activeValidationMessage","autofilledMessage","size","disableFiltering","buttonFontSize","margin","loading","onFocus","onBlur","rest","useState","isOpen","setIsOpen","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedItem","setSelectedItem","selectedValues","setSelectedValues","focused","setFocused","init","setInit","styledFieldRef","inputRef","clearButtonRef","useRef","useImperativeHandle","current","containerRef","handleInputKeyDown","e","key","preventDefault","useEffect","length","val","item","find","a","displayLabel","undefined","handleInputClear","focus","focusVisible","detail","renderInput","stopPropagation","blur","defaultOnMouseDownHandler","Math","floor","random","target","marginLeft","Size","Small","COLORS","neutral_600","itemsType","multiSelect","action","onValueUpdate","values","items","critical_400"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AA2BA,IAAMA,cAAc,gBAAGC,KAAK,CAACC,UAAN,CAAkB,gBAsByBC,GAtBzB,EAsBiC;AAAA,MArB9BC,EAqB8B,QArB9BA,EAqB8B;AAAA,MApB9BC,IAoB8B,QApB9BA,IAoB8B;AAAA,MAnB9BC,WAmB8B,QAnB9BA,WAmB8B;AAAA,MAlB9BC,QAkB8B,QAlB9BA,QAkB8B;AAAA,MAjB9BC,aAiB8B,QAjB9BA,aAiB8B;AAAA,MAhB9BC,KAgB8B,QAhB9BA,KAgB8B;AAAA,MAf9BC,QAe8B,QAf9BA,QAe8B;AAAA,MAd9BC,kBAc8B,QAd9BA,kBAc8B;AAAA,MAb9BC,QAa8B,QAb9BA,QAa8B;AAAA,MAZ9BC,QAY8B,QAZ9BA,QAY8B;AAAA,MAX9BC,UAW8B,QAX9BA,UAW8B;AAAA,MAV9BC,uBAU8B,QAV9BA,uBAU8B;AAAA,MAT9BC,iBAS8B,QAT9BA,iBAS8B;AAAA,MAR9BC,IAQ8B,QAR9BA,IAQ8B;AAAA,MAP9BC,gBAO8B,QAP9BA,gBAO8B;AAAA,MAN9BC,cAM8B,QAN9BA,cAM8B;AAAA,yBAL9BC,MAK8B;AAAA,MAL9BA,MAK8B,4BALrB,OAKqB;AAAA,MAJ9BC,OAI8B,QAJ9BA,OAI8B;AAAA,MAH9BC,QAG8B,QAH9BA,OAG8B;AAAA,MAF9BC,OAE8B,QAF9BA,MAE8B;AAAA,MAD3BC,IAC2B;;AACxE,wBAA4BvB,KAAK,CAACwB,QAAN,CAAwB,KAAxB,CAA5B;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AACA,yBAA0B1B,KAAK,CAACwB,QAAN,EAA1B;AAAA;AAAA,MAAOG,KAAP;AAAA,MAAcC,QAAd;;AACA,yBAAkD5B,KAAK,CAACwB,QAAN,CAAuBnB,WAAW,IAAI,EAAtC,CAAlD;AAAA;AAAA,MAAOwB,iBAAP;AAAA,MAA0BC,oBAA1B;;AACA,yBAA0C9B,KAAK,CAACwB,QAAN,CAAwB,KAAxB,CAA1C;AAAA;AAAA,MAAOO,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,yBAAwChC,KAAK,CAACwB,QAAN,EAAxC;AAAA;AAAA,MAAOS,YAAP;AAAA,MAAqBC,eAArB;;AACA,0BAA4ClC,KAAK,CAACwB,QAAN,CAAyB,EAAzB,CAA5C;AAAA;AAAA,MAAOW,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,0BAA8BpC,KAAK,CAACwB,QAAN,CAA8B,IAA9B,CAA9B;AAAA;AAAA,MAAOa,OAAP;AAAA,MAAgBC,UAAhB;;AACA,0BAAwBtC,KAAK,CAACwB,QAAN,CAAwB,IAAxB,CAAxB;AAAA;AAAA,MAAOe,IAAP;AAAA,MAAaC,OAAb;;AAEA,MAAMC,cAAc,GAAG,iCAAvB;AACA,MAAMC,QAAQ,GAAG,gCAAmB,CAACD,cAAD,CAAnB,CAAjB;AACA,MAAME,cAAc,GAAG3C,KAAK,CAAC4C,MAAN,CAAgC,IAAhC,CAAvB;AAEA,+BAAgBH,cAAhB,EAAgCd,KAAK,IAAI,CAACf,QAAV,IAAsB,CAACD,QAAvB,GAAkC,CAACgC,cAAD,CAAlC,GAAqD,EAArF;AAEA3C,EAAAA,KAAK,CAAC6C,mBAAN,CAA0B3C,GAA1B,EAA+B;AAAA,WAAMwC,QAAQ,CAACI,OAAf;AAAA,GAA/B,EAAuD,CAACJ,QAAD,CAAvD;AAEA,MAAMK,YAAY,GAAG,gCACnB;AAAA,WAAMrB,SAAS,CAAC,KAAD,CAAf;AAAA,GADmB,EAEnB,EAFmB,EAGnB,gCAAmB;AAAA,WAAMA,SAAS,CAAC,KAAD,CAAf;AAAA,GAAnB,CAHmB,CAArB;;AAMA,MAAMsB,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,CAAD,EAA8C;AACvE,QAAIA,CAAC,CAACC,GAAF,KAAU,KAAV,IAAmBD,CAAC,CAACC,GAAF,KAAU,QAAjC,EAA2C;AACzCD,MAAAA,CAAC,CAACE,cAAF;AACD;;AACD,QAAIF,CAAC,CAACC,GAAF,KAAU,WAAV,IAAyBD,CAAC,CAACC,GAAF,KAAU,MAAnC,IAA6CD,CAAC,CAACC,GAAF,KAAU,SAAvD,IAAoED,CAAC,CAACC,GAAF,KAAU,IAAlF,EAAwF;AACtFD,MAAAA,CAAC,CAACE,cAAF;;AACA,UAAI,CAAC1B,MAAL,EAAa;AACXC,QAAAA,SAAS,CAAC,IAAD,CAAT;AACD;AACF;AACF,GAVD;;AAYA1B,EAAAA,KAAK,CAACoD,SAAN,CAAgB,YAAM;AACpBZ,IAAAA,OAAO,CAAC,IAAD,CAAP;AACAJ,IAAAA,iBAAiB,CAAC,CAAC,CAAC5B,KAAF,GAAU,CAACA,KAAD,CAAV,GAAoB,EAArB,CAAjB;AACD,GAHD,EAGG,CAACA,KAAD,CAHH;AAKAR,EAAAA,KAAK,CAACoD,SAAN,CAAgB,YAAM;AACpB,QAAIjB,cAAJ,aAAIA,cAAJ,eAAIA,cAAc,CAAEkB,MAApB,EAA4B;AAAA;;AAC1B,UAAMC,GAAG,GAAGnB,cAAc,CAAC,CAAD,CAA1B;AACA,UAAMoB,IAAI,GAAGnD,IAAI,CAACoD,IAAL,CAAU,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACjD,KAAF,KAAY8C,GAAnB;AAAA,OAAV,CAAb;AACApB,MAAAA,eAAe,CAACqB,IAAD,CAAf;AACA3B,MAAAA,QAAQ,gCAAC2B,IAAD,aAACA,IAAD,uBAACA,IAAI,CAAEG,YAAP,mEAAuBH,IAAvB,aAAuBA,IAAvB,uBAAuBA,IAAI,CAAE/C,KAA7B,yCAAsC,EAAtC,CAAR;AACAF,MAAAA,QAAQ,IAAI,CAACiC,IAAb,IAAqBjC,QAAQ,CAACgD,GAAD,CAA7B;AACD,KAND,MAMO;AACLpB,MAAAA,eAAe,CAACyB,SAAD,CAAf;AACArD,MAAAA,QAAQ,IAAI,CAACiC,IAAb,IAAqBjC,QAAQ,CAAC,EAAD,CAA7B;AACAsB,MAAAA,QAAQ,CAAC,EAAD,CAAR;AACD;AACF,GAZD,EAYG,CAACO,cAAD,CAZH;AAcAnC,EAAAA,KAAK,CAACoD,SAAN,CAAgB,YAAM;AACpB,QAAI,CAAC3B,MAAL,EAAa;AACX,UAAI,CAAC,CAACQ,YAAN,EAAoB;AAAA;;AAClBL,QAAAA,QAAQ,mCAACK,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAEyB,YAAf,yEAA+BzB,YAA/B,aAA+BA,YAA/B,uBAA+BA,YAAY,CAAEzB,KAA7C,yCAAsD,EAAtD,CAAR;AACD,OAFD,MAEO;AACLoB,QAAAA,QAAQ,CAAC,EAAD,CAAR;AACD;AACF;;AAEDI,IAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD,GAVD,EAUG,CAACP,MAAD,EAASQ,YAAT,CAVH;;AAYA,MAAM2B,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACX,CAAD,EAAY;AAAA;;AACnCrB,IAAAA,QAAQ,CAAC,EAAD,CAAR;AACAQ,IAAAA,iBAAiB,CAAC,EAAD,CAAjB;AACA9B,IAAAA,QAAQ,IAAIA,QAAQ,CAAC,EAAD,CAApB;AACA,yBAAAoC,QAAQ,CAACI,OAAT,wEAAkBe,KAAlB,CAAwB;AAAEC,MAAAA,YAAY,EAAE,CAAAb,CAAC,SAAD,IAAAA,CAAC,WAAD,YAAAA,CAAC,CAAEc,MAAH,MAAc;AAA9B,KAAxB;AACD,GALD;;AAOA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB,wBACE,sBAAC,0BAAD;AACE,MAAA,GAAG,EAAEvB,cADP;AAEE,MAAA,SAAS,EAAEzB,IAAI,GAAGA,IAAH,GAAU,EAF3B;AAGE,MAAA,OAAO,EAAE,iBAACiC,CAAD,EAAY;AACnB,YAAI,CAACrC,QAAD,IAAa,CAACD,QAAlB,EAA4B;AAC1BsC,UAAAA,CAAC,CAACgB,eAAF;AACAvC,UAAAA,SAAS,CAAC,CAACD,MAAF,CAAT;;AACA,cAAIA,MAAJ,EAAY;AAAA;;AACV,kCAAAiB,QAAQ,CAACI,OAAT,0EAAkBoB,IAAlB;AACD,WAFD,MAEO;AAAA;;AACL,kCAAAxB,QAAQ,CAACI,OAAT,0EAAkBe,KAAlB;AACD;AACF;AACF,OAbH;AAcE,MAAA,QAAQ,EAAElD,QAAQ,IAAI,KAdxB;AAeE,MAAA,QAAQ,EAAEC,QAAQ,IAAI,KAfxB;AAgBE,MAAA,aAAa,EAAE,CAACe,KAhBlB;AAiBE,MAAA,QAAQ,EAAET,cAjBZ;AAkBE,MAAA,qBAAqB,EAAE,CAAC,CAACJ,uBAlB3B;AAmBE,MAAA,WAAW,EAAEqD,iCAnBf;AAoBE,wCAAyBhE,EAAzB,CApBF;AAAA,8BAqBE,qBAAC,yBAAD;AACE,QAAA,EAAE,EAAEA,EADN;AAEE,QAAA,GAAG,EAAEuC,QAFP;AAGE,QAAA,YAAY,EAAE,SAAS0B,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,MAAL,KAAgB,YAA3B,CAHzB;AAIE,QAAA,IAAI,EAAC,QAJP;AAKE,QAAA,WAAW,EAAEzC,iBALf;AAME,QAAA,SAAS,EAAEmB,kBANb;AAOE,QAAA,KAAK,EAAErB,KAAK,IAAI,EAPlB;AAQE,QAAA,QAAQ,EAAE,kBAACsB,CAAD,EAAY;AACpB,cAAI,CAACA,CAAC,CAACsB,MAAF,CAAS/D,KAAd,EAAqB;AACnB4B,YAAAA,iBAAiB,CAAC,EAAD,CAAjB;AACD;;AACD,cAAI,CAACxB,QAAD,IAAa,CAACD,QAAd,IAA0BsC,CAAC,CAACsB,MAAF,CAAS/D,KAAT,KAAmBmB,KAAjD,EAAwD;AACtDK,YAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACAN,YAAAA,SAAS,CAAC,IAAD,CAAT;AACAE,YAAAA,QAAQ,CAACqB,CAAC,CAACsB,MAAF,CAAS/D,KAAV,CAAR;;AACA,gBAAID,aAAJ,EAAmB;AACjBA,cAAAA,aAAa,CAAC0C,CAAC,CAACsB,MAAF,CAAS/D,KAAT,IAAkB,EAAnB,CAAb;AACD;AACF;AACF,SApBH;AAqBE,QAAA,OAAO,EAAE,iBAACyC,CAAD,EAAO;AACdnB,UAAAA,oBAAoB,CAAC,EAAD,CAApB;AACAT,UAAAA,QAAO,IAAIA,QAAO,CAAC4B,CAAD,CAAlB;AACD,SAxBH;AAyBE,QAAA,MAAM,EAAE,gBAACA,CAAD,EAAO;AACbnB,UAAAA,oBAAoB,CAACzB,WAAW,IAAI,EAAhB,CAApB;AACAiB,UAAAA,OAAM,IAAIA,OAAM,CAAC2B,CAAD,CAAhB;AACD,SA5BH;AA6BE,QAAA,QAAQ,EAAExC,QA7BZ;AA8BE,QAAA,QAAQ,EAAEE,QAAQ,IAAIC,QAAZ,GAAuB,CAAC,CAAxB,GAA4B,CA9BxC;AA+BE,QAAA,QAAQ,EAAED,QAAQ,IAAI;AA/BxB,SAgCMY,IAhCN,EArBF,EAuDGI,KAAK,IAAI,CAACf,QAAV,IAAsB,CAACD,QAAvB,IAAmC,CAACS,OAApC,iBACC,qBAAC,kBAAD;AAAY,QAAA,MAAM,EAAEwC,gBAApB;AAAsC,QAAA,GAAG,EAAEjB,cAA3C;AAA2D,QAAA,wBAAwB,EAAE,IAArF;AAA2F,QAAA,KAAK,EAAE,UAAlG;AAA8G,QAAA,KAAK,EAAE;AAAE6B,UAAAA,UAAU,EAAE;AAAd,SAArH;AAA6I,QAAA,OAAO,EAAE,WAAtJ;AAAA,+BACE,qBAAC,kBAAD,CAAa,KAAb;AADF,QAxDJ,EA6DG,CAAC7D,QAAD,IAAa,CAACC,QAAd,IAA0BQ,OAA1B,iBACC;AAAK,QAAA,KAAK,EAAE;AAAEoD,UAAAA,UAAU,EAAE;AAAd,SAAZ;AAAA,+BACE,qBAAC,kCAAD;AAAkB,UAAA,IAAI,EAAEC,YAAKC,KAA7B;AAAoC,UAAA,KAAK,EAAEC,eAAOC;AAAlD;AADF,QA9DJ,eAmEE;AAAK,QAAA,SAAS,EAAE,gBAAhB;AAAA,kBACGnD,MAAM,IAAI,CAACb,QAAX,IAAuB,CAACD,QAAxB,gBAAmC,qBAAC,wBAAD;AAAa,UAAA,IAAI,EAAC,MAAlB;AAAyB,UAAA,SAAS,EAAEK,IAAI,GAAGA,IAAH,GAAU;AAAlD,UAAnC,gBAA8F,qBAAC,0BAAD;AAAe,UAAA,IAAI,EAAC,MAApB;AAA2B,UAAA,SAAS,EAAEA,IAAI,GAAGA,IAAH,GAAU;AAApD;AADjG,QAnEF;AAAA,MADF;AAyED,GA1ED;;AA4EA,sBACE;AAAA,4BACE,sBAAC,uBAAD;AAAU,MAAA,GAAG,EAAE+B,YAAf;AAA6B,MAAA,QAAQ,EAAEpC,QAAvC;AAAiD,MAAA,QAAQ,EAAE,KAA3D;AAAkE,MAAA,QAAQ,EAAEC,QAA5E;AAAsF,MAAA,SAAS,EAAEI,IAAI,GAAGA,IAAH,GAAU,EAA/G;AAAmH,MAAA,MAAM,EAAEG,MAA3H;AAAA,iBACG6C,WAAW,EADd,EAEG,CAACpD,QAAD,IAAa,CAACD,QAAd,iBACC,qBAAC,wBAAD;AACE,QAAA,YAAY,EAAEoC,YADhB;AAEE,QAAA,MAAM,EAAEtB,MAAM,IAAI,CAACL,OAFrB;AAGE,QAAA,kBAAkB,EAAEV,kBAAF,aAAEA,kBAAF,cAAEA,kBAAF,GAAwB,EAH5C;AAIE,QAAA,cAAc,EAAEyB,cAJlB;AAKE,QAAA,iBAAiB,EAAEC,iBALrB;AAME,QAAA,IAAI,EAAEpB,IAAF,aAAEA,IAAF,cAAEA,IAAF,GAAUyD,YAAKC,KANrB;AAOE,QAAA,OAAO,EAAErC,OAPX;AAQE,QAAA,UAAU,EAAEC,UARd;AASE,QAAA,OAAO,EAAE,KATX;AAUE,QAAA,kBAAkB,EAAE;AAClBuC,UAAAA,SAAS,EAAE,QADO;AAElBhE,UAAAA,UAAU,EAAEA,UAFM;AAGlBiE,UAAAA,WAAW,EAAE,KAHK;AAIlBC,UAAAA,MAAM,EAAE,kBAAM,CAAE,CAJE;AAKlBC,UAAAA,aAAa,EAAE,uBAACC,MAAD,EAAsB;AACnCjD,YAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACAQ,YAAAA,OAAO,CAAC,KAAD,CAAP;AACD,WARiB;AASlB0C,UAAAA,KAAK,EAAE9E;AATW,SAVtB;AAqBE,QAAA,MAAM,EAAE,CAACa,gBAAD,IAAqB,CAACc,aAAtB,GAAsCJ,KAAK,IAAI,EAA/C,GAAoD,EArB9D;AAsBE,QAAA,SAAS,EAAED,SAtBb;AAuBE,QAAA,QAAQ,EAAE,KAvBZ;AAwBE,QAAA,EAAE,YAAKvB,EAAL;AAxBJ,QAHJ;AAAA,MADF,EAgCGW,uBAAuB,iBACtB,sBAAC,yBAAD;AAAc,MAAA,SAAS,EAAEE,IAAI,IAAI,EAAjC;AAAA,8BACE,qBAAC,6BAAD;AAAkB,QAAA,KAAK,EAAE2D,eAAOQ;AAAhC,QADF,eAEE;AAAA,kBAAOrE;AAAP,QAFF;AAAA,MAjCJ,EAsCGC,iBAAiB,iBAChB,sBAAC,8BAAD;AAAmB,MAAA,SAAS,EAAEC,IAAI,IAAI,EAAtC;AAAA,8BACE,qBAAC,wBAAD;AAAa,QAAA,KAAK,EAAE2D,eAAOC;AAA3B,QADF,eAEE;AAAA,kBAAO7D;AAAP,QAFF;AAAA,MAvCJ;AAAA,IADF;AA+CD,CA3NsB,CAAvB;;AAxBEX,EAAAA,I;AACAC,EAAAA,W;AAEAG,EAAAA,K;AACAF,EAAAA,Q;AACAC,EAAAA,a;AAEAE,EAAAA,Q;AACAE,EAAAA,Q;AACAC,EAAAA,Q;AACAQ,EAAAA,O;AAEAH,EAAAA,gB;AAEAP,EAAAA,kB;AACAI,EAAAA,uB;AACAC,EAAAA,iB;AAGAG,EAAAA,c;AACAC,EAAAA,M;AACAN,EAAAA,U;;eAgOad,c","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, InputField } from './CommonStyling';\nimport DropdownContent, { DropdownItem } from './DropdownContent';\nimport { Size } from '../types';\nimport { AutofilledMessage, ErrorMessage } from '../InputFields';\nimport { defaultOnMouseDownHandler, useActionWithin, useClickOutsideRef, useFocusOutsideRef, useFocusVisibleRef } from '../common';\nimport { IconButton } from '../Button';\nimport { SystemIcons } from '../icons';\n\ninterface DropdownFilterProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onSelect' | 'size' | 'list' | 'autoComplete' | 'type' | 'placeholder' | 'onKeyDown' | 'value' | 'onChange' | 'required' | 'tabIndex' | 'disabled' | 'readOnly'> {\n list: DropdownItem[];\n placeholder?: string;\n\n value?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n\n required?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n loading?: boolean;\n\n disableFiltering?: boolean;\n\n messageOnNoResults?: string;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n\n buttonFontSize?: string;\n margin?: string;\n scrollable?: boolean;\n}\n\nconst DropdownFilter = React.forwardRef( ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n value,\n required,\n messageOnNoResults,\n disabled,\n readOnly,\n scrollable,\n activeValidationMessage,\n autofilledMessage,\n size,\n disableFiltering,\n buttonFontSize,\n margin = '4px 0',\n loading,\n onFocus,\n onBlur,\n ...rest\n }: DropdownFilterProps, ref) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [input, setInput] = React.useState<string>();\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedItem, setSelectedItem] = React.useState<DropdownItem>();\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [init, setInit] = React.useState<boolean>(true);\n\n const styledFieldRef = useFocusVisibleRef();\n const inputRef = useFocusVisibleRef([styledFieldRef]);\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\n\n useActionWithin(styledFieldRef, input && !readOnly && !disabled ? [clearButtonRef] : []);\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n const containerRef = useClickOutsideRef(\n () => setIsOpen(false),\n [],\n useFocusOutsideRef(() => setIsOpen(false)),\n );\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Esc' || e.key === 'Escape') {\n e.preventDefault();\n }\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n };\n\n React.useEffect(() => {\n setInit(true);\n setSelectedValues(!!value ? [value] : []);\n }, [value]);\n\n React.useEffect(() => {\n if (selectedValues?.length) {\n const val = selectedValues[0];\n const item = list.find((a) => a.value === val);\n setSelectedItem(item);\n setInput(item?.displayLabel ?? item?.value ?? '');\n onSelect && !init && onSelect(val);\n } else {\n setSelectedItem(undefined);\n onSelect && !init && onSelect('');\n setInput('');\n }\n }, [selectedValues]);\n\n React.useEffect(() => {\n if (!isOpen) {\n if (!!selectedItem) {\n setInput(selectedItem?.displayLabel ?? selectedItem?.value ?? '');\n } else {\n setInput('');\n }\n }\n\n setRestartFilter(true);\n }, [isOpen, selectedItem]);\n\n const handleInputClear = (e: any) => {\n setInput('');\n setSelectedValues([]);\n onSelect && onSelect('');\n inputRef.current?.focus({ focusVisible: e?.detail !== 1 } as any);\n };\n\n const renderInput = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={size ? size : ''}\n onClick={(e: any) => {\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 disabled={disabled || false}\n readOnly={readOnly || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\n onMouseDown={defaultOnMouseDownHandler}\n data-testid={`otherdiv_${id}`}>\n <InputField\n id={id}\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n onKeyDown={handleInputKeyDown}\n value={input || ''}\n onChange={(e: any) => {\n if (!e.target.value) {\n setSelectedValues([]);\n }\n if (!readOnly && !disabled && e.target.value !== input) {\n setRestartFilter(false);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onFocus={(e) => {\n setPlaceholderSearch('');\n onFocus && onFocus(e);\n }}\n onBlur={(e) => {\n setPlaceholderSearch(placeholder || '');\n onBlur && onBlur(e);\n }}\n required={required}\n tabIndex={disabled || readOnly ? -1 : 0}\n disabled={disabled || false}\n {...rest}\n />\n {input && !readOnly && !disabled && !loading && (\n <IconButton action={handleInputClear} ref={clearButtonRef} useTransparentBackground={true} shape={'circular'} style={{ marginLeft: '-4px' }} variant={'secondary'}>\n <SystemIcons.Clear />\n </IconButton>\n )}\n\n {!disabled && !readOnly && loading && (\n <div style={{ marginLeft: '-4xp' }}>\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} />\n </div>\n )}\n\n <div className={'dropdown-arrow'}>\n {isOpen && !readOnly && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n );\n };\n\n return (\n <>\n <Dropdown ref={containerRef} disabled={disabled} isButton={false} readOnly={readOnly} className={size ? size : ''} margin={margin}>\n {renderInput()}\n {!readOnly && !disabled && (\n <DropdownContent\n containerRef={containerRef}\n isOpen={isOpen && !loading}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n outline={false}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {},\n onValueUpdate: (values: string[]) => {\n setRestartFilter(true);\n setInit(false);\n },\n items: list,\n }}\n filter={!disableFiltering && !restartFilter ? input || '' : ''}\n setIsOpen={setIsOpen}\n isButton={false}\n id={`${id}_dropdowncontent`}\n />\n )}\n </Dropdown>\n {activeValidationMessage && (\n <ErrorMessage className={size || ''}>\n <TechnicalWarning color={COLORS.critical_400} />\n <span>{activeValidationMessage}</span>\n </ErrorMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information 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","React","forwardRef","ref","id","list","placeholder","onSelect","onInputChange","value","required","messageOnNoResults","disabled","readOnly","scrollable","activeValidationMessage","autofilledMessage","size","disableFiltering","buttonFontSize","margin","loading","onFocus","onBlur","rest","useState","isOpen","setIsOpen","input","setInput","activeDescendant","setActiveDescendant","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedItem","setSelectedItem","selectedValues","setSelectedValues","focused","setFocused","init","setInit","styledFieldRef","inputRef","clearButtonRef","useRef","useImperativeHandle","current","containerRef","handleInputKeyDown","e","key","preventDefault","useEffect","length","val","item","find","a","displayLabel","undefined","handleInputClear","focus","focusVisible","detail","renderInput","stopPropagation","blur","defaultOnMouseDownHandler","Math","floor","random","target","marginLeft","Size","Small","COLORS","neutral_600","itemsType","multiSelect","action","onValueUpdate","values","items","critical_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, InputField } from './CommonStyling';\nimport DropdownContent, { DropdownItem } from './DropdownContent';\nimport { Size } from '../types';\nimport { AutofilledMessage, ErrorMessage } from '../InputFields';\nimport { defaultOnMouseDownHandler, useActionWithin, useClickOutsideRef, useFocusOutsideRef, useFocusVisibleRef } from '../common';\nimport { IconButton } from '../Button';\nimport { SystemIcons } from '../icons';\n\ninterface DropdownFilterProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onSelect' | 'size' | 'list' | 'autoComplete' | 'type' | 'placeholder' | 'onKeyDown' | 'value' | 'onChange' | 'required' | 'tabIndex' | 'disabled' | 'readOnly'> {\n list: DropdownItem[];\n placeholder?: string;\n\n value?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n\n required?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n loading?: boolean;\n\n disableFiltering?: boolean;\n\n messageOnNoResults?: string;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n\n buttonFontSize?: string;\n margin?: string;\n scrollable?: boolean;\n}\n\nconst DropdownFilter = React.forwardRef( ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n value,\n required,\n messageOnNoResults,\n disabled,\n readOnly,\n scrollable,\n activeValidationMessage,\n autofilledMessage,\n size,\n disableFiltering,\n buttonFontSize,\n margin = '4px 0',\n loading,\n onFocus,\n onBlur,\n ...rest\n }: DropdownFilterProps, ref) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [input, setInput] = React.useState<string>();\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedItem, setSelectedItem] = React.useState<DropdownItem>();\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [init, setInit] = React.useState<boolean>(true);\n\n const styledFieldRef = useFocusVisibleRef();\n const inputRef = useFocusVisibleRef([styledFieldRef]);\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\n\n useActionWithin(styledFieldRef, input && !readOnly && !disabled ? [clearButtonRef] : []);\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n const containerRef = useClickOutsideRef(\n () => setIsOpen(false),\n [],\n useFocusOutsideRef(() => setIsOpen(false)),\n );\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Esc' || e.key === 'Escape') {\n e.preventDefault();\n }\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n };\n\n React.useEffect(() => {\n setInit(true);\n setSelectedValues(!!value ? [value] : []);\n }, [value]);\n\n React.useEffect(() => {\n if (selectedValues?.length) {\n const val = selectedValues[0];\n const item = list.find((a) => a.value === val);\n setSelectedItem(item);\n setInput(item?.displayLabel ?? item?.value ?? '');\n onSelect && !init && onSelect(val);\n } else {\n setSelectedItem(undefined);\n onSelect && !init && onSelect('');\n setInput('');\n }\n }, [selectedValues]);\n\n React.useEffect(() => {\n if (!isOpen) {\n if (!!selectedItem) {\n setInput(selectedItem?.displayLabel ?? selectedItem?.value ?? '');\n } else {\n setInput('');\n }\n }\n\n setRestartFilter(true);\n }, [isOpen, selectedItem]);\n\n const handleInputClear = (e: any) => {\n setInput('');\n setSelectedValues([]);\n onSelect && onSelect('');\n inputRef.current?.focus({ focusVisible: e?.detail !== 1 } as any);\n };\n\n const renderInput = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={size ? size : ''}\n onClick={(e: any) => {\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 disabled={disabled || false}\n readOnly={readOnly || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\n onMouseDown={defaultOnMouseDownHandler}\n data-testid={`otherdiv_${id}`}>\n <InputField\n id={id}\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n onKeyDown={handleInputKeyDown}\n value={input || ''}\n onChange={(e: any) => {\n if (!e.target.value) {\n setSelectedValues([]);\n }\n if (!readOnly && !disabled && e.target.value !== input) {\n setRestartFilter(false);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onFocus={(e) => {\n setPlaceholderSearch('');\n onFocus && onFocus(e);\n }}\n onBlur={(e) => {\n setPlaceholderSearch(placeholder || '');\n onBlur && onBlur(e);\n }}\n required={required}\n tabIndex={disabled || readOnly ? -1 : 0}\n disabled={disabled || false}\n {...rest}\n />\n {input && !readOnly && !disabled && !loading && (\n <IconButton action={handleInputClear} ref={clearButtonRef} useTransparentBackground={true} shape={'circular'} style={{ marginLeft: '-4px' }} variant={'secondary'}>\n <SystemIcons.Clear />\n </IconButton>\n )}\n\n {!disabled && !readOnly && loading && (\n <div style={{ marginLeft: '-4xp' }}>\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} />\n </div>\n )}\n\n <div className={'dropdown-arrow'}>\n {isOpen && !readOnly && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n );\n };\n\n return (\n <>\n <Dropdown ref={containerRef} role=\"combobox\"\n aria-activedescendant={activeDescendant}\n aria-multiselectable={true} disabled={disabled} isButton={false} readOnly={readOnly} className={size ? size : ''} margin={margin}>\n {renderInput()}\n {!readOnly && !disabled && (\n <DropdownContent\n containerRef={containerRef}\n isOpen={isOpen && !loading}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n size={size ?? Size.Small}\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\n focused={focused}\n ariaRolesType=\"input\"\n setFocused={setFocused}\n outline={false}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {},\n onValueUpdate: (values: string[]) => {\n setRestartFilter(true);\n setInit(false);\n },\n items: list,\n }}\n filter={!disableFiltering && !restartFilter ? input || '' : ''}\n setIsOpen={setIsOpen}\n isButton={false}\n id={`${id}_dropdowncontent`}\n />\n )}\n </Dropdown>\n {activeValidationMessage && (\n <ErrorMessage className={size || ''}>\n <TechnicalWarning color={COLORS.critical_400} />\n <span>{activeValidationMessage}</span>\n </ErrorMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information color={COLORS.neutral_600} />\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n});\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.cjs"}
|
|
@@ -56,35 +56,40 @@ var DropdownFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
56
56
|
input = _React$useState4[0],
|
|
57
57
|
setInput = _React$useState4[1];
|
|
58
58
|
|
|
59
|
-
var _React$useState5 = React.useState(
|
|
59
|
+
var _React$useState5 = React.useState(),
|
|
60
60
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
activeDescendant = _React$useState6[0],
|
|
62
|
+
setActiveDescendant = _React$useState6[1];
|
|
63
63
|
|
|
64
|
-
var _React$useState7 = React.useState(
|
|
64
|
+
var _React$useState7 = React.useState(placeholder || ''),
|
|
65
65
|
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
placeholderSearch = _React$useState8[0],
|
|
67
|
+
setPlaceholderSearch = _React$useState8[1];
|
|
68
68
|
|
|
69
|
-
var _React$useState9 = React.useState(),
|
|
69
|
+
var _React$useState9 = React.useState(false),
|
|
70
70
|
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
restartFilter = _React$useState10[0],
|
|
72
|
+
setRestartFilter = _React$useState10[1];
|
|
73
73
|
|
|
74
|
-
var _React$useState11 = React.useState(
|
|
74
|
+
var _React$useState11 = React.useState(),
|
|
75
75
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
selectedItem = _React$useState12[0],
|
|
77
|
+
setSelectedItem = _React$useState12[1];
|
|
78
78
|
|
|
79
|
-
var _React$useState13 = React.useState(
|
|
79
|
+
var _React$useState13 = React.useState([]),
|
|
80
80
|
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
selectedValues = _React$useState14[0],
|
|
82
|
+
setSelectedValues = _React$useState14[1];
|
|
83
83
|
|
|
84
|
-
var _React$useState15 = React.useState(
|
|
84
|
+
var _React$useState15 = React.useState(null),
|
|
85
85
|
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
focused = _React$useState16[0],
|
|
87
|
+
setFocused = _React$useState16[1];
|
|
88
|
+
|
|
89
|
+
var _React$useState17 = React.useState(true),
|
|
90
|
+
_React$useState18 = _slicedToArray(_React$useState17, 2),
|
|
91
|
+
init = _React$useState18[0],
|
|
92
|
+
setInit = _React$useState18[1];
|
|
88
93
|
|
|
89
94
|
var styledFieldRef = useFocusVisibleRef();
|
|
90
95
|
var inputRef = useFocusVisibleRef([styledFieldRef]);
|
|
@@ -254,6 +259,9 @@ var DropdownFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
254
259
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
255
260
|
children: [/*#__PURE__*/_jsxs(Dropdown, {
|
|
256
261
|
ref: containerRef,
|
|
262
|
+
role: "combobox",
|
|
263
|
+
"aria-activedescendant": activeDescendant,
|
|
264
|
+
"aria-multiselectable": true,
|
|
257
265
|
disabled: disabled,
|
|
258
266
|
isButton: false,
|
|
259
267
|
readOnly: readOnly,
|
|
@@ -266,7 +274,11 @@ var DropdownFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
266
274
|
selectedValues: selectedValues,
|
|
267
275
|
setSelectedValues: setSelectedValues,
|
|
268
276
|
size: size !== null && size !== void 0 ? size : Size.Small,
|
|
277
|
+
onActiveDescendantChanged: function onActiveDescendantChanged(e) {
|
|
278
|
+
return setActiveDescendant(e);
|
|
279
|
+
},
|
|
269
280
|
focused: focused,
|
|
281
|
+
ariaRolesType: "input",
|
|
270
282
|
setFocused: setFocused,
|
|
271
283
|
outline: false,
|
|
272
284
|
customizationProps: {
|