@laerdal/life-react-components 5.0.0-dev.5 → 5.0.0-dev.6

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 (36) hide show
  1. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  2. package/dist/Dropdown/DropdownContent.js.map +1 -1
  3. package/dist/InputFields/QuickSearch.cjs +2 -2
  4. package/dist/InputFields/QuickSearch.cjs.map +1 -1
  5. package/dist/InputFields/QuickSearch.js +2 -2
  6. package/dist/InputFields/QuickSearch.js.map +1 -1
  7. package/dist/InputFields/RadioButton.cjs +6 -6
  8. package/dist/InputFields/RadioButton.cjs.map +1 -1
  9. package/dist/InputFields/RadioButton.js +6 -6
  10. package/dist/InputFields/RadioButton.js.map +1 -1
  11. package/dist/InputFields/TextField.d.ts +1 -1
  12. package/dist/Modals/ModalContainer.cjs +0 -3
  13. package/dist/Modals/ModalContainer.cjs.map +1 -1
  14. package/dist/Modals/ModalContainer.js +0 -3
  15. package/dist/Modals/ModalContainer.js.map +1 -1
  16. package/dist/ProfileButton/ProfileButton.cjs +1 -1
  17. package/dist/ProfileButton/ProfileButton.cjs.map +1 -1
  18. package/dist/ProfileButton/ProfileButton.d.ts +1 -1
  19. package/dist/ProfileButton/ProfileButton.js +1 -1
  20. package/dist/ProfileButton/ProfileButton.js.map +1 -1
  21. package/dist/Tabs/Tabs.cjs +6 -6
  22. package/dist/Tabs/Tabs.cjs.map +1 -1
  23. package/dist/Tabs/Tabs.js +6 -6
  24. package/dist/Tabs/Tabs.js.map +1 -1
  25. package/dist/Tabs/__tests__/Tablist.tests.d.ts +1 -1
  26. package/dist/styles/typography.cjs +63 -62
  27. package/dist/styles/typography.cjs.map +1 -1
  28. package/dist/styles/typography.d.ts +6 -9
  29. package/dist/styles/typography.js +63 -62
  30. package/dist/styles/typography.js.map +1 -1
  31. package/dist/test-utils.cjs +42 -0
  32. package/dist/test-utils.cjs.map +1 -0
  33. package/dist/test-utils.d.ts +5 -0
  34. package/dist/test-utils.js +22 -0
  35. package/dist/test-utils.js.map +1 -0
  36. package/package.json +10 -8
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownContent.js","names":["React","styled","Button","Size","DropdownContentButtonStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","scrollBarStyling","Checkbox","RadioButton","Z_INDEXES","MenuItem","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DropdownContentContainer","div","_templateObject","_taggedTemplateLiteral","props","getColor","theme","dropdown","$isButton","concat","$offsetLeft","$offsetTop","$size","Large","Medium","$scrollable","$maxHeight","DropdownContentItemsContainer","_templateObject2","hover","active","focus","DropdownContentListContainer","_templateObject3","$itemsType","Small","DropdownContentMenuContentContainer","_templateObject4","Bold","Regular","DividerContainer","_templateObject5","DropdownContentTopItemContainer","_templateObject6","DropdownContentActionButtonContainer","_templateObject7","Overlay","_templateObject8","modal","DropdownContent","forwardRef","_ref","ref","_ref2","_customizationProps$a","id","customizationProps","alignLeft","isButton","size","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","_ref$ariaRolesType","ariaRolesType","_React$useState","useState","_React$useState2","_slicedToArray","isUp","setIsUp","_React$useState3","_React$useState4","locationDefined","setLocationDefined","_React$useState5","top","left","_React$useState6","offset","setOffset","dropdownContentRef","useRef","itemsType","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","_dropdownContentRef$c","newFocusedElement","elRefs","oldFocusedElement","_oldFocusedElement$cu","_newFocusedElement$cu","_newFocusedElement$cu2","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","_x$value","_x$displayLabel","value","includes","displayLabel","findNextActiveIndex","direction","i","_items","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","_focusedElement$curre","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","_itemsListRef$current","scrollTop","useLayoutEffect","_scrollPosition$curre","getCorrectRef","createRef","_React$useState7","_React$useState8","setElRefs","Array","fill","map","_","_getSuggestions","pinTopItem","multiSelect","getSuggestions","suggestion","_dropdownContentRef$c2","_dropdownContentRef$c3","_iterator","_createForOfIteratorHelper","_step","s","n","done","_elRef$current","elRef","err","f","blur","_dropdownContentRef$c4","_dropdownContentRef$c5","observer","IntersectionObserver","entries","isIntersecting","_document","_document$activeEleme","activeElement","threshold","rootMargin","observe","calculateOffset","disconnect","handleItemClick","selected","item","newValue","_toConsumableArray","onValueUpdate","getTopItem","_customizationProps$i","_customizationProps$i2","_selectedFirst$displa","_selectedFirst$displa2","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","children","role","iconPointerEventsTransparent","onFocus","tabIndexVal","className","select","label","newValues","semiSelected","tabIndex","onClickHandler","stopPropagation","getElements","_item$displayLabel","_item$displayLabel2","customContent","_containerRef$current","style","cls","$alignLeft","scrollable","maxHeight","onScroll","$outline","menuContent","action","actionLabel","icon","actionIcon","loading","actionLoading","actionDisabled","variant","actionVariant","onClick","propTypes","_pt","bool","isRequired","shape","oneOf","node","string","func","arrayOf","noteLabel","showDividerAbove","locked","oneOfType","number"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, { MutableRefObject } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport Button from '../Button/Button';\r\nimport { Size } from '../types';\r\nimport { DropdownContentButtonStyling } from './CommonStyling';\r\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\nimport { COLORS, focusStyles, scrollBarStyling } from '../styles';\r\nimport { Checkbox, RadioButton } from '../InputFields';\r\nimport { Z_INDEXES } from '../styles/z-indexes';\r\nimport MenuItem from '../MenuItem/MenuItem';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\nimport ReactDOM from 'react-dom';\r\n\r\nconst MAX_MENU_HEIGHT = 240;\r\nconst AVG_OPTION_HEIGHT = 48;\r\nconst OFFSET_BEFORE_SHOW = 1000000;\r\n\r\nexport const DropdownContentContainer = styled.div<{ $offsetTop: string; $offsetLeft: string; $isButton: boolean; $alignLeft?: boolean; $size?: Size; $scrollable?: boolean; $maxHeight?: string }>`\r\n display: none;\r\n pointer-events: auto;\r\n position: absolute;\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n\r\n z-index: ${Z_INDEXES.dropdown};\r\n margin: ${(props) => (props.$isButton ? '-4px' : '4px 0px')};\r\n\r\n &.show {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n &.down,\r\n &.up {\r\n ${(props) => `transform: translate(${props.$offsetLeft}, ${props.$offsetTop});`}\r\n }\r\n }\r\n\r\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\r\n\r\n &.outline:focus:after {\r\n content: '';\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n outline: 4px solid black;\r\n outline-offset: 2px;\r\n border-radius: 2px;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n ${(props) => (props.$isButton ? DropdownContentButtonStyling : '')};\r\n\r\n border: 1px solid ${props => COLORS.getColor('neutral_100', props.theme)};\r\n box-sizing: border-box;\r\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\r\n padding: 4px 0px;\r\n\r\n min-width: ${(props) => (props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n border-radius: ${(props) => (props.$size == Size.Large ? '10px' : props.$size == Size.Medium ? '8px' : '6px')};\r\n\r\n max-height: ${(props) => (!props.$scrollable ? 'auto' : props.$maxHeight ? props.$maxHeight : props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n`;\r\n\r\nexport const DropdownContentItemsContainer = styled.div<{ $size?: Size }>`\r\n > *:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n }\r\n\r\n > *:active,\r\n > *.active {\r\n z-index: ${Z_INDEXES.active};\r\n }\r\n\r\n > *:focus {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n`;\r\n\r\nexport const DropdownContentListContainer = styled.div<{ $scrollable?: boolean; $size?: Size; $itemsType?: string; $outline?: boolean }>`\r\n ${(props) => (props.$scrollable ? 'overflow-y: scroll;' : '')}\r\n ${(props) => (props.$scrollable ? 'margin-right: 6px;' : '')}\r\n ${(props) => (props.$scrollable ? 'padding-right: 6px;' : '')}\r\n ${(props) => (props.$itemsType != 'normal' ? 'margin-left: 4px;' : '')}\r\n div.divider {\r\n display: block;\r\n width: calc(100% - 40px);\r\n margin-left: 16px;\r\n border-top: 1px solid #e5e5e5;\r\n position: absolute;\r\n top: 0px;\r\n }\r\n\r\n ${DropdownContentItemsContainer} {\r\n padding-top: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n padding-bottom: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n\r\n word-break: break-word;\r\n }\r\n\r\n *:focus {\r\n outline: none !important;\r\n }\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n`;\r\n\r\nconst DropdownContentMenuContentContainer = styled.div<{ $size?: Size }>`\r\n h1,\r\n h2,\r\n h3 {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '10px 16px 6px' : props.$size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px')};\r\n }\r\n\r\n p {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '8px 16px' : props.$size == Size.Medium ? '12px 24px' : '16px 32px')};\r\n }\r\n`;\r\n\r\nconst DividerContainer = styled.div<{ $size?: Size }>`\r\n position: relative;\r\n\r\n margin-top: ${(props) => (props.$size == Size.Large ? '16px' : props.$size == Size.Medium ? '12px' : props.$size == Size.Small || !props.$size ? '8px' : '6px')};\r\n\r\n div.divider {\r\n width: 100%;\r\n margin: 0px;\r\n }\r\n`;\r\n\r\nconst DropdownContentTopItemContainer = styled.div<{ $size?: Size }>`\r\n border-bottom-style: solid;\r\n border-bottom-color: ${props => COLORS.getColor('neutral_200', props.theme)};\r\n border-bottom-width: 1px;\r\n margin-right: 22px;\r\n`;\r\n\r\nconst DropdownContentActionButtonContainer = styled.div<{ $size?: Size; $scrollable?: boolean }>`\r\n ${(props) => (props.$scrollable ? `border-top: 1px solid ${COLORS.getColor('neutral_200', props.theme)};` : '')}\r\n ${(props) => (props.$scrollable ? 'margin-top: 4px;' : '')}\r\n\r\n padding: ${(props) => (props.$size === Size.Small || !props.$size ? '4px 16px 0px' : props.$size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\r\n\r\n button {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Overlay = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n z-index: ${Z_INDEXES.modal};\r\n`;\r\n\r\nexport interface DropdownItem {\r\n /** Required. Value of the DropdownItem. */\r\n value: string;\r\n /** Optional. Display label to show in the MenuItem. If not provided then 'value' will be used as label. */\r\n displayLabel?: string;\r\n /** Optional. Note label to be shown under the Display label in the MenuItem. */\r\n noteLabel?: string;\r\n /** */\r\n suggestion?: boolean;\r\n /** Optional. Show dividing line on the top of the item. */\r\n showDividerAbove?: boolean;\r\n /** Optional. If disabled user can not interact with the item. */\r\n disabled?: boolean;\r\n /** Optional. If item is locked then user can not interact with the item and 'lock' icon is shown on the right side of the item. */\r\n locked?: boolean;\r\n /** Optional. Icon to be shown on the left side of the menu item */\r\n icon?: React.ReactNode;\r\n /** */\r\n customContent?: React.ReactNode;\r\n}\r\n\r\nexport interface DropdownCustomizationProps {\r\n itemsType?: 'radio' | 'checkbox' | 'normal';\r\n menuContent?: React.ReactNode;\r\n scrollable?: boolean;\r\n multiSelect?: boolean;\r\n maxHeight?: string;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n action: () => boolean | void | undefined;\r\n pinTopItem?: boolean;\r\n onValueUpdate: (values: string[]) => boolean | void | undefined;\r\n items: DropdownItem[];\r\n}\r\n\r\nexport interface DropdownProps {\r\n isButton: boolean;\r\n customizationProps: DropdownCustomizationProps;\r\n alignLeft?: boolean;\r\n isOpen: boolean;\r\n setIsOpen: (open: boolean) => void;\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n id: string;\r\n filter: string;\r\n width?: string;\r\n onActiveDescendantChanged?: (descendantId?: string) => void;\r\n selectedValues: string[];\r\n setSelectedValues: (val: string[]) => void;\r\n messageOnNoResults: string;\r\n focused: number | null;\r\n setFocused: (focused: number | null) => void;\r\n outline?: boolean;\r\n containerRef: React.RefObject<HTMLDivElement>;\r\n ariaRolesType?: 'input' | 'menu';\r\n}\r\n\r\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n id,\r\n customizationProps,\r\n alignLeft,\r\n isButton,\r\n size,\r\n isOpen,\r\n width,\r\n setIsOpen,\r\n filter,\r\n focused,\r\n setFocused,\r\n selectedValues,\r\n setSelectedValues,\r\n messageOnNoResults,\r\n outline,\r\n containerRef,\r\n onActiveDescendantChanged,\r\n ariaRolesType = 'menu',\r\n },\r\n ref,\r\n ) => {\r\n const [isUp, setIsUp] = React.useState<boolean>(false);\r\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\r\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\r\n\r\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? React.useRef<HTMLDivElement>(null);\r\n\r\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\r\n if (!size) size = Size.Small;\r\n\r\n const itemsListRef = React.useRef<HTMLDivElement>(null);\r\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const determineDropUp = () => {\r\n const options = customizationProps.items;\r\n\r\n const rect = containerRef.current!.getBoundingClientRect();\r\n\r\n const windowHeight = window.innerHeight;\r\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\r\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\r\n\r\n const up = instOffsetWithMenu >= windowHeight;\r\n\r\n setOffset({\r\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\r\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\r\n });\r\n\r\n setIsUp(up);\r\n setLocationDefined(true);\r\n };\r\n\r\n const setNewFocusedElement = (index: number) => {\r\n if (outline) dropdownContentRef.current?.focus();\r\n\r\n const newFocusedElement = elRefs[index];\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? `${id}_topitem` : `${id}_${index}`);\r\n\r\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\r\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\r\n setFocused(index);\r\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\r\n\r\n newFocusedElement.current?.classList.add('dropdown-hover');\r\n newFocusedElement.current?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n };\r\n\r\n const getFilteredItems = () => {\r\n const filtrationString = (filter ?? '').toUpperCase();\r\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\r\n };\r\n\r\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\r\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\r\n if (!items[i - 1]?.disabled) {\r\n return i;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (isOpen) {\r\n if (e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\r\n if (!!focusedNow) {\r\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\r\n\r\n setNewFocusedElement(focusedNow);\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\r\n e.preventDefault();\r\n let focusedNow = focused;\r\n\r\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\r\n\r\n setNewFocusedElement(focusedNow);\r\n } else if (e.key === 'Escape' || e.key === 'Esc') {\r\n setIsOpen(false);\r\n setFocused(null);\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\r\n e.preventDefault();\r\n const focusedElement = elRefs[focused];\r\n if (focusedElement) {\r\n focusedElement.current?.click();\r\n }\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n }, []);\r\n\r\n const scrollPosition = React.useRef<number | undefined>(0);\r\n const handleScroll = () => {\r\n scrollPosition.current = itemsListRef.current?.scrollTop;\r\n };\r\n React.useLayoutEffect(() => {\r\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\r\n }, [selectedValues]);\r\n\r\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\r\n switch (customizationProps.itemsType) {\r\n case 'normal':\r\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\r\n default:\r\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\r\n }\r\n };\r\n\r\n const arrLength = getFilteredItems().length;\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\r\n\r\n React.useEffect(() => {\r\n if (elRefs?.length !== arrLength) {\r\n setFocused(null);\r\n }\r\n\r\n setElRefs((elRefs) =>\r\n Array(arrLength + 1)\r\n .fill(null)\r\n .map((_, i) => getCorrectRef(elRefs[i])),\r\n );\r\n }, [isOpen, arrLength]);\r\n\r\n React.useLayoutEffect(() => {\r\n isOpen && !locationDefined && determineDropUp();\r\n }, [isOpen, locationDefined]);\r\n\r\n const haveTopItem = () => {\r\n if (!customizationProps.pinTopItem) return false;\r\n\r\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\r\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\r\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\r\n return false;\r\n };\r\n\r\n const getSuggestions = () => {\r\n return getFilteredItems().filter((x) => x.suggestion);\r\n };\r\n\r\n /**\r\n * when dropdown opens set correct position of focused item\r\n * */\r\n React.useLayoutEffect(() => {\r\n if (isOpen && (focused || focused === 0)) {\r\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\r\n }\r\n }, [isOpen, focused]);\r\n\r\n /**\r\n * Reset dropdown content state on close\r\n * */\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n setLocationDefined(false);\r\n for (let elRef of elRefs) {\r\n elRef.current?.classList.remove('dropdown-hover');\r\n }\r\n setFocused(null);\r\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n dropdownContentRef.current?.classList.remove('outline');\r\n dropdownContentRef.current?.blur();\r\n } else {\r\n if (outline) {\r\n dropdownContentRef.current?.classList.add('outline');\r\n dropdownContentRef.current?.focus();\r\n }\r\n }\r\n }, [isOpen, dropdownContentRef, focused, outline]);\r\n\r\n /**\r\n * Scroll item container to top when dropdown opens\r\n * */\r\n React.useEffect(() => {\r\n if (isOpen && itemsListRef.current) {\r\n itemsListRef.current.scrollTop = 0;\r\n }\r\n }, [isOpen]);\r\n\r\n React.useEffect(() => {\r\n if (isOpen) {\r\n const observer = new IntersectionObserver(function (entries) {\r\n if (!entries[0].isIntersecting) {\r\n setIsOpen(false);\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n }\r\n }, {threshold: [0], rootMargin: '8px'});\r\n\r\n observer.observe(containerRef.current!);\r\n\r\n calculateOffset();\r\n window.addEventListener('scroll', calculateOffset, true);\r\n window.addEventListener('resize', calculateOffset);\r\n\r\n return () => {\r\n observer.disconnect();\r\n window.removeEventListener('scroll', calculateOffset, true);\r\n window.removeEventListener('resize', calculateOffset);\r\n }\r\n }\r\n return () => {};\r\n }, [isOpen]);\r\n\r\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\r\n let newValue: string[] = [];\r\n if (customizationProps.multiSelect) {\r\n if (selected) newValue = [...selectedValues, item.value];\r\n else newValue = selectedValues.filter((x) => x != item.value);\r\n } else newValue = selected ? [item.value] : [];\r\n\r\n setSelectedValues(newValue);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const getTopItem = () => {\r\n if (!customizationProps.pinTopItem) return;\r\n const visibleItems = getFilteredItems();\r\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\r\n let showTopItem = false;\r\n const suggestions = getSuggestions();\r\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\r\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\r\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\r\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\r\n\r\n if (!showTopItem) return;\r\n\r\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find((x) => x.value == selectedValues[0]) : null;\r\n\r\n return (\r\n <DropdownContentTopItemContainer $size={size}>\r\n {customizationProps.itemsType === 'radio' && (\r\n <RadioButton\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\r\n role='menuitemradio'\r\n iconPointerEventsTransparent={true}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={() => {}}\r\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n size={size}\r\n id={`${id}_topitem`}\r\n selected={true}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'checkbox' && (\r\n <Checkbox\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\r\n role='menuitemcheckbox'\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={(selected: boolean) => {\r\n if (!customizationProps.multiSelect) return;\r\n\r\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\r\n setSelectedValues(newValues);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);\r\n }}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n iconPointerEventsTransparent={true}\r\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\r\n size={size}\r\n id={`${id}_checkbox_selectall`}\r\n label={customizationProps.multiSelect ? 'Select all' : selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n selected={!customizationProps.multiSelect || allSelected}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'normal' && (\r\n <>\r\n {suggestions.map((x) => (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`${id}_topitem_${x.value}`}\r\n item={x}\r\n size={size}\r\n active={false}\r\n tabIndex={-1}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\r\n id={`${id}_topitem`}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([x.value]);\r\n setSelectedValues([x.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </DropdownContentTopItemContainer>\r\n );\r\n };\r\n\r\n const getElements = (messageOnNoResults: string, size: Size.Small | Size.Medium | Size.Large) => {\r\n if (getFilteredItems().length === 0) {\r\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\r\n }\r\n return (\r\n <DropdownContentItemsContainer $size={size}>\r\n {getFilteredItems()\r\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\r\n .map((item, index) => {\r\n return (\r\n <React.Fragment key={`key_${id}_${item.value}`}>\r\n {item.customContent}\r\n {!item.customContent && customizationProps.itemsType == 'radio' && (\r\n <RadioButton\r\n role='menuitemradio'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\r\n size={size}\r\n tabIndexVal={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\r\n <Checkbox\r\n role='menuitemcheckbox'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\r\n size={size}\r\n tabIndexVal={-1}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`key_${id}_${index + 1}`}\r\n id={`${id}_${index + 1}`}\r\n item={item}\r\n tabIndex={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n size={size}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n active={selectedValues?.includes(item.value)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement>}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([item.value]);\r\n setSelectedValues([item.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </DropdownContentItemsContainer>\r\n );\r\n };\r\n\r\n const calculateOffset = () => {\r\n const rect = containerRef?.current?.getBoundingClientRect();\r\n if (rect) {\r\n dropdownContentRef.current.style.left = `${rect.x + rect.width}px`;\r\n dropdownContentRef.current.style.top = `${rect.y + rect.height}px`;\r\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\r\n }\r\n determineDropUp();\r\n };\r\n\r\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\r\n\r\n return (\r\n <Overlay>\r\n <DropdownContentContainer\r\n role={ariaRolesType == \"menu\" ? \"menu\" : \"optionlist\"}\r\n ref={dropdownContentRef}\r\n $size={size}\r\n $offsetTop={offset.top}\r\n id={id}\r\n $offsetLeft={offset.left}\r\n tabIndex={-1}\r\n $isButton={isButton}\r\n $alignLeft={alignLeft}\r\n $scrollable={customizationProps.scrollable}\r\n $maxHeight={customizationProps.maxHeight}\r\n className={cls}>\r\n <DropdownContentListContainer\r\n role=\"group\"\r\n $size={size}\r\n $itemsType={customizationProps.itemsType}\r\n onScroll={handleScroll}\r\n ref={itemsListRef}\r\n $outline={outline}\r\n $scrollable={customizationProps.scrollable}>\r\n {customizationProps.menuContent && (\r\n <DropdownContentMenuContentContainer $size={size}>\r\n {customizationProps.menuContent}\r\n <DividerContainer $size={size}>\r\n <div className=\"divider\" />\r\n </DividerContainer>\r\n </DropdownContentMenuContentContainer>\r\n )}\r\n {customizationProps.pinTopItem && getTopItem()}\r\n {getElements(messageOnNoResults, size)}\r\n </DropdownContentListContainer>\r\n {customizationProps.action && customizationProps.actionLabel && (\r\n <DropdownContentActionButtonContainer $size={size} $scrollable={customizationProps.scrollable}>\r\n <Button\r\n width=\"100%\"\r\n role=\"menuitem\"\r\n icon={customizationProps.actionIcon}\r\n ref={actionButtonRef}\r\n loading={customizationProps.actionLoading}\r\n disabled={customizationProps.actionDisabled}\r\n variant={customizationProps.actionVariant ?? 'primary'}\r\n size={size}\r\n onClick={() => customizationProps.action() && setIsOpen(false)}>\r\n {customizationProps.actionLabel}\r\n </Button>\r\n </DropdownContentActionButtonContainer>\r\n )}\r\n </DropdownContentContainer>\r\n </Overlay>\r\n );\r\n },\r\n);\r\n\r\nexport default DropdownContent;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DropdownContent.js","names":["React","styled","Button","Size","DropdownContentButtonStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","scrollBarStyling","Checkbox","RadioButton","Z_INDEXES","MenuItem","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DropdownContentContainer","div","_templateObject","_taggedTemplateLiteral","props","getColor","theme","dropdown","$isButton","concat","$offsetLeft","$offsetTop","$size","Large","Medium","$scrollable","$maxHeight","DropdownContentItemsContainer","_templateObject2","hover","active","focus","DropdownContentListContainer","_templateObject3","$itemsType","Small","DropdownContentMenuContentContainer","_templateObject4","Bold","Regular","DividerContainer","_templateObject5","DropdownContentTopItemContainer","_templateObject6","DropdownContentActionButtonContainer","_templateObject7","Overlay","_templateObject8","modal","DropdownContent","forwardRef","_ref","ref","_ref2","_customizationProps$a","id","customizationProps","alignLeft","isButton","size","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","_ref$ariaRolesType","ariaRolesType","_React$useState","useState","_React$useState2","_slicedToArray","isUp","setIsUp","_React$useState3","_React$useState4","locationDefined","setLocationDefined","_React$useState5","top","left","_React$useState6","offset","setOffset","dropdownContentRef","useRef","itemsType","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","_dropdownContentRef$c","newFocusedElement","elRefs","oldFocusedElement","_oldFocusedElement$cu","_newFocusedElement$cu","_newFocusedElement$cu2","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","_x$value","_x$displayLabel","value","includes","displayLabel","findNextActiveIndex","direction","i","_items","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","_focusedElement$curre","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","_itemsListRef$current","scrollTop","useLayoutEffect","_scrollPosition$curre","getCorrectRef","createRef","_React$useState7","_React$useState8","setElRefs","Array","fill","map","_","_getSuggestions","pinTopItem","multiSelect","getSuggestions","suggestion","_dropdownContentRef$c2","_dropdownContentRef$c3","_iterator","_createForOfIteratorHelper","_step","s","n","done","_elRef$current","elRef","err","f","blur","_dropdownContentRef$c4","_dropdownContentRef$c5","observer","IntersectionObserver","entries","isIntersecting","_document","_document$activeEleme","activeElement","threshold","rootMargin","observe","calculateOffset","disconnect","handleItemClick","selected","item","newValue","_toConsumableArray","onValueUpdate","getTopItem","_customizationProps$i","_customizationProps$i2","_selectedFirst$displa","_selectedFirst$displa2","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","children","role","iconPointerEventsTransparent","onFocus","tabIndexVal","className","select","label","newValues","semiSelected","tabIndex","onClickHandler","stopPropagation","getElements","_item$displayLabel","_item$displayLabel2","customContent","_containerRef$current","style","cls","$alignLeft","scrollable","maxHeight","onScroll","$outline","menuContent","action","actionLabel","icon","actionIcon","loading","actionLoading","actionDisabled","variant","actionVariant","onClick","propTypes","_pt","bool","isRequired","shape","oneOf","node","string","func","arrayOf","noteLabel","showDividerAbove","locked","oneOfType","number"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, { MutableRefObject } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport Button from '../Button/Button';\r\nimport { Size } from '../types';\r\nimport { DropdownContentButtonStyling } from './CommonStyling';\r\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\nimport { COLORS, focusStyles, scrollBarStyling } from '../styles';\r\nimport { Checkbox, RadioButton } from '../InputFields';\r\nimport { Z_INDEXES } from '../styles/z-indexes';\r\nimport MenuItem from '../MenuItem/MenuItem';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\n\r\nconst MAX_MENU_HEIGHT = 240;\r\nconst AVG_OPTION_HEIGHT = 48;\r\nconst OFFSET_BEFORE_SHOW = 1000000;\r\n\r\nexport const DropdownContentContainer = styled.div<{ $offsetTop: string; $offsetLeft: string; $isButton: boolean; $alignLeft?: boolean; $size?: Size; $scrollable?: boolean; $maxHeight?: string }>`\r\n display: none;\r\n pointer-events: auto;\r\n position: absolute;\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n\r\n z-index: ${Z_INDEXES.dropdown};\r\n margin: ${(props) => (props.$isButton ? '-4px' : '4px 0px')};\r\n\r\n &.show {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n &.down,\r\n &.up {\r\n ${(props) => `transform: translate(${props.$offsetLeft}, ${props.$offsetTop});`}\r\n }\r\n }\r\n\r\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\r\n\r\n &.outline:focus:after {\r\n content: '';\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n outline: 4px solid black;\r\n outline-offset: 2px;\r\n border-radius: 2px;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n ${(props) => (props.$isButton ? DropdownContentButtonStyling : '')};\r\n\r\n border: 1px solid ${props => COLORS.getColor('neutral_100', props.theme)};\r\n box-sizing: border-box;\r\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\r\n padding: 4px 0px;\r\n\r\n min-width: ${(props) => (props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n border-radius: ${(props) => (props.$size == Size.Large ? '10px' : props.$size == Size.Medium ? '8px' : '6px')};\r\n\r\n max-height: ${(props) => (!props.$scrollable ? 'auto' : props.$maxHeight ? props.$maxHeight : props.$size == Size.Large ? '320px' : props.$size == Size.Medium ? '280px' : '240px')};\r\n`;\r\n\r\nexport const DropdownContentItemsContainer = styled.div<{ $size?: Size }>`\r\n > *:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n }\r\n\r\n > *:active,\r\n > *.active {\r\n z-index: ${Z_INDEXES.active};\r\n }\r\n\r\n > *:focus {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n`;\r\n\r\nexport const DropdownContentListContainer = styled.div<{ $scrollable?: boolean; $size?: Size; $itemsType?: string; $outline?: boolean }>`\r\n ${(props) => (props.$scrollable ? 'overflow-y: scroll;' : '')}\r\n ${(props) => (props.$scrollable ? 'margin-right: 6px;' : '')}\r\n ${(props) => (props.$scrollable ? 'padding-right: 6px;' : '')}\r\n ${(props) => (props.$itemsType != 'normal' ? 'margin-left: 4px;' : '')}\r\n div.divider {\r\n display: block;\r\n width: calc(100% - 40px);\r\n margin-left: 16px;\r\n border-top: 1px solid #e5e5e5;\r\n position: absolute;\r\n top: 0px;\r\n }\r\n\r\n ${DropdownContentItemsContainer} {\r\n padding-top: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n padding-bottom: ${(props) => (props.$size == Size.Large ? '8px' : props.$size == Size.Medium ? '4px' : '0px')};\r\n\r\n word-break: break-word;\r\n }\r\n\r\n *:focus {\r\n outline: none !important;\r\n }\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n`;\r\n\r\nconst DropdownContentMenuContentContainer = styled.div<{ $size?: Size }>`\r\n h1,\r\n h2,\r\n h3 {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '10px 16px 6px' : props.$size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px')};\r\n }\r\n\r\n p {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.$size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => props.$size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => (props.$size == Size.Small || !props.$size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n padding: ${(props) => (props.$size == Size.Small || !props.$size ? '8px 16px' : props.$size == Size.Medium ? '12px 24px' : '16px 32px')};\r\n }\r\n`;\r\n\r\nconst DividerContainer = styled.div<{ $size?: Size }>`\r\n position: relative;\r\n\r\n margin-top: ${(props) => (props.$size == Size.Large ? '16px' : props.$size == Size.Medium ? '12px' : props.$size == Size.Small || !props.$size ? '8px' : '6px')};\r\n\r\n div.divider {\r\n width: 100%;\r\n margin: 0px;\r\n }\r\n`;\r\n\r\nconst DropdownContentTopItemContainer = styled.div<{ $size?: Size }>`\r\n border-bottom-style: solid;\r\n border-bottom-color: ${props => COLORS.getColor('neutral_200', props.theme)};\r\n border-bottom-width: 1px;\r\n margin-right: 22px;\r\n`;\r\n\r\nconst DropdownContentActionButtonContainer = styled.div<{ $size?: Size; $scrollable?: boolean }>`\r\n ${(props) => (props.$scrollable ? `border-top: 1px solid ${COLORS.getColor('neutral_200', props.theme)};` : '')}\r\n ${(props) => (props.$scrollable ? 'margin-top: 4px;' : '')}\r\n\r\n padding: ${(props) => (props.$size === Size.Small || !props.$size ? '4px 16px 0px' : props.$size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\r\n\r\n button {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Overlay = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n z-index: ${Z_INDEXES.modal};\r\n`;\r\n\r\nexport interface DropdownItem {\r\n /** Required. Value of the DropdownItem. */\r\n value: string;\r\n /** Optional. Display label to show in the MenuItem. If not provided then 'value' will be used as label. */\r\n displayLabel?: string;\r\n /** Optional. Note label to be shown under the Display label in the MenuItem. */\r\n noteLabel?: string;\r\n /** */\r\n suggestion?: boolean;\r\n /** Optional. Show dividing line on the top of the item. */\r\n showDividerAbove?: boolean;\r\n /** Optional. If disabled user can not interact with the item. */\r\n disabled?: boolean;\r\n /** Optional. If item is locked then user can not interact with the item and 'lock' icon is shown on the right side of the item. */\r\n locked?: boolean;\r\n /** Optional. Icon to be shown on the left side of the menu item */\r\n icon?: React.ReactNode;\r\n /** */\r\n customContent?: React.ReactNode;\r\n}\r\n\r\nexport interface DropdownCustomizationProps {\r\n itemsType?: 'radio' | 'checkbox' | 'normal';\r\n menuContent?: React.ReactNode;\r\n scrollable?: boolean;\r\n multiSelect?: boolean;\r\n maxHeight?: string;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n action: () => boolean | void | undefined;\r\n pinTopItem?: boolean;\r\n onValueUpdate: (values: string[]) => boolean | void | undefined;\r\n items: DropdownItem[];\r\n}\r\n\r\nexport interface DropdownProps {\r\n isButton: boolean;\r\n customizationProps: DropdownCustomizationProps;\r\n alignLeft?: boolean;\r\n isOpen: boolean;\r\n setIsOpen: (open: boolean) => void;\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n id: string;\r\n filter: string;\r\n width?: string;\r\n onActiveDescendantChanged?: (descendantId?: string) => void;\r\n selectedValues: string[];\r\n setSelectedValues: (val: string[]) => void;\r\n messageOnNoResults: string;\r\n focused: number | null;\r\n setFocused: (focused: number | null) => void;\r\n outline?: boolean;\r\n containerRef: React.RefObject<HTMLDivElement>;\r\n ariaRolesType?: 'input' | 'menu';\r\n}\r\n\r\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n id,\r\n customizationProps,\r\n alignLeft,\r\n isButton,\r\n size,\r\n isOpen,\r\n width,\r\n setIsOpen,\r\n filter,\r\n focused,\r\n setFocused,\r\n selectedValues,\r\n setSelectedValues,\r\n messageOnNoResults,\r\n outline,\r\n containerRef,\r\n onActiveDescendantChanged,\r\n ariaRolesType = 'menu',\r\n },\r\n ref,\r\n ) => {\r\n const [isUp, setIsUp] = React.useState<boolean>(false);\r\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\r\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\r\n\r\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? React.useRef<HTMLDivElement>(null);\r\n\r\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\r\n if (!size) size = Size.Small;\r\n\r\n const itemsListRef = React.useRef<HTMLDivElement>(null);\r\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const determineDropUp = () => {\r\n const options = customizationProps.items;\r\n\r\n const rect = containerRef.current!.getBoundingClientRect();\r\n\r\n const windowHeight = window.innerHeight;\r\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\r\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\r\n\r\n const up = instOffsetWithMenu >= windowHeight;\r\n\r\n setOffset({\r\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\r\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\r\n });\r\n\r\n setIsUp(up);\r\n setLocationDefined(true);\r\n };\r\n\r\n const setNewFocusedElement = (index: number) => {\r\n if (outline) dropdownContentRef.current?.focus();\r\n\r\n const newFocusedElement = elRefs[index];\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? `${id}_topitem` : `${id}_${index}`);\r\n\r\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\r\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\r\n setFocused(index);\r\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\r\n\r\n newFocusedElement.current?.classList.add('dropdown-hover');\r\n newFocusedElement.current?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n };\r\n\r\n const getFilteredItems = () => {\r\n const filtrationString = (filter ?? '').toUpperCase();\r\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\r\n };\r\n\r\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\r\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\r\n if (!items[i - 1]?.disabled) {\r\n return i;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (isOpen) {\r\n if (e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\r\n if (!!focusedNow) {\r\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\r\n\r\n setNewFocusedElement(focusedNow);\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\r\n e.preventDefault();\r\n let focusedNow = focused;\r\n\r\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\r\n\r\n setNewFocusedElement(focusedNow);\r\n } else if (e.key === 'Escape' || e.key === 'Esc') {\r\n setIsOpen(false);\r\n setFocused(null);\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\r\n e.preventDefault();\r\n const focusedElement = elRefs[focused];\r\n if (focusedElement) {\r\n focusedElement.current?.click();\r\n }\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n }, []);\r\n\r\n const scrollPosition = React.useRef<number | undefined>(0);\r\n const handleScroll = () => {\r\n scrollPosition.current = itemsListRef.current?.scrollTop;\r\n };\r\n React.useLayoutEffect(() => {\r\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\r\n }, [selectedValues]);\r\n\r\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\r\n switch (customizationProps.itemsType) {\r\n case 'normal':\r\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\r\n default:\r\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\r\n }\r\n };\r\n\r\n const arrLength = getFilteredItems().length;\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\r\n\r\n React.useEffect(() => {\r\n if (elRefs?.length !== arrLength) {\r\n setFocused(null);\r\n }\r\n\r\n setElRefs((elRefs) =>\r\n Array(arrLength + 1)\r\n .fill(null)\r\n .map((_, i) => getCorrectRef(elRefs[i])),\r\n );\r\n }, [isOpen, arrLength]);\r\n\r\n React.useLayoutEffect(() => {\r\n isOpen && !locationDefined && determineDropUp();\r\n }, [isOpen, locationDefined]);\r\n\r\n const haveTopItem = () => {\r\n if (!customizationProps.pinTopItem) return false;\r\n\r\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\r\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\r\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\r\n return false;\r\n };\r\n\r\n const getSuggestions = () => {\r\n return getFilteredItems().filter((x) => x.suggestion);\r\n };\r\n\r\n /**\r\n * when dropdown opens set correct position of focused item\r\n * */\r\n React.useLayoutEffect(() => {\r\n if (isOpen && (focused || focused === 0)) {\r\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\r\n }\r\n }, [isOpen, focused]);\r\n\r\n /**\r\n * Reset dropdown content state on close\r\n * */\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n setLocationDefined(false);\r\n for (let elRef of elRefs) {\r\n elRef.current?.classList.remove('dropdown-hover');\r\n }\r\n setFocused(null);\r\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n dropdownContentRef.current?.classList.remove('outline');\r\n dropdownContentRef.current?.blur();\r\n } else {\r\n if (outline) {\r\n dropdownContentRef.current?.classList.add('outline');\r\n dropdownContentRef.current?.focus();\r\n }\r\n }\r\n }, [isOpen, dropdownContentRef, focused, outline]);\r\n\r\n /**\r\n * Scroll item container to top when dropdown opens\r\n * */\r\n React.useEffect(() => {\r\n if (isOpen && itemsListRef.current) {\r\n itemsListRef.current.scrollTop = 0;\r\n }\r\n }, [isOpen]);\r\n\r\n React.useEffect(() => {\r\n if (isOpen) {\r\n const observer = new IntersectionObserver(function (entries) {\r\n if (!entries[0].isIntersecting) {\r\n setIsOpen(false);\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n }\r\n }, {threshold: [0], rootMargin: '8px'});\r\n\r\n observer.observe(containerRef.current!);\r\n\r\n calculateOffset();\r\n window.addEventListener('scroll', calculateOffset, true);\r\n window.addEventListener('resize', calculateOffset);\r\n\r\n return () => {\r\n observer.disconnect();\r\n window.removeEventListener('scroll', calculateOffset, true);\r\n window.removeEventListener('resize', calculateOffset);\r\n }\r\n }\r\n return () => {};\r\n }, [isOpen]);\r\n\r\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\r\n let newValue: string[] = [];\r\n if (customizationProps.multiSelect) {\r\n if (selected) newValue = [...selectedValues, item.value];\r\n else newValue = selectedValues.filter((x) => x != item.value);\r\n } else newValue = selected ? [item.value] : [];\r\n\r\n setSelectedValues(newValue);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const getTopItem = () => {\r\n if (!customizationProps.pinTopItem) return;\r\n const visibleItems = getFilteredItems();\r\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\r\n let showTopItem = false;\r\n const suggestions = getSuggestions();\r\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\r\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\r\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\r\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\r\n\r\n if (!showTopItem) return;\r\n\r\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find((x) => x.value == selectedValues[0]) : null;\r\n\r\n return (\r\n <DropdownContentTopItemContainer $size={size}>\r\n {customizationProps.itemsType === 'radio' && (\r\n <RadioButton\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\r\n role='menuitemradio'\r\n iconPointerEventsTransparent={true}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={() => {}}\r\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n size={size}\r\n id={`${id}_topitem`}\r\n selected={true}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'checkbox' && (\r\n <Checkbox\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\r\n role='menuitemcheckbox'\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={(selected: boolean) => {\r\n if (!customizationProps.multiSelect) return;\r\n\r\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\r\n setSelectedValues(newValues);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);\r\n }}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n iconPointerEventsTransparent={true}\r\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\r\n size={size}\r\n id={`${id}_checkbox_selectall`}\r\n label={customizationProps.multiSelect ? 'Select all' : selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n selected={!customizationProps.multiSelect || allSelected}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'normal' && (\r\n <>\r\n {suggestions.map((x) => (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`${id}_topitem_${x.value}`}\r\n item={x}\r\n size={size}\r\n active={false}\r\n tabIndex={-1}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\r\n id={`${id}_topitem`}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([x.value]);\r\n setSelectedValues([x.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </DropdownContentTopItemContainer>\r\n );\r\n };\r\n\r\n const getElements = (messageOnNoResults: string, size: Size.Small | Size.Medium | Size.Large) => {\r\n if (getFilteredItems().length === 0) {\r\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\r\n }\r\n return (\r\n <DropdownContentItemsContainer $size={size}>\r\n {getFilteredItems()\r\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\r\n .map((item, index) => {\r\n return (\r\n <React.Fragment key={`key_${id}_${item.value}`}>\r\n {item.customContent}\r\n {!item.customContent && customizationProps.itemsType == 'radio' && (\r\n <RadioButton\r\n role='menuitemradio'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\r\n size={size}\r\n tabIndexVal={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\r\n <Checkbox\r\n role='menuitemcheckbox'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\r\n size={size}\r\n tabIndexVal={-1}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`key_${id}_${index + 1}`}\r\n id={`${id}_${index + 1}`}\r\n item={item}\r\n tabIndex={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n size={size}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n active={selectedValues?.includes(item.value)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement>}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([item.value]);\r\n setSelectedValues([item.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </DropdownContentItemsContainer>\r\n );\r\n };\r\n\r\n const calculateOffset = () => {\r\n const rect = containerRef?.current?.getBoundingClientRect();\r\n if (rect) {\r\n dropdownContentRef.current.style.left = `${rect.x + rect.width}px`;\r\n dropdownContentRef.current.style.top = `${rect.y + rect.height}px`;\r\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\r\n }\r\n determineDropUp();\r\n };\r\n\r\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\r\n\r\n return (\r\n <Overlay>\r\n <DropdownContentContainer\r\n role={ariaRolesType == \"menu\" ? \"menu\" : \"optionlist\"}\r\n ref={dropdownContentRef}\r\n $size={size}\r\n $offsetTop={offset.top}\r\n id={id}\r\n $offsetLeft={offset.left}\r\n tabIndex={-1}\r\n $isButton={isButton}\r\n $alignLeft={alignLeft}\r\n $scrollable={customizationProps.scrollable}\r\n $maxHeight={customizationProps.maxHeight}\r\n className={cls}>\r\n <DropdownContentListContainer\r\n role=\"group\"\r\n $size={size}\r\n $itemsType={customizationProps.itemsType}\r\n onScroll={handleScroll}\r\n ref={itemsListRef}\r\n $outline={outline}\r\n $scrollable={customizationProps.scrollable}>\r\n {customizationProps.menuContent && (\r\n <DropdownContentMenuContentContainer $size={size}>\r\n {customizationProps.menuContent}\r\n <DividerContainer $size={size}>\r\n <div className=\"divider\" />\r\n </DividerContainer>\r\n </DropdownContentMenuContentContainer>\r\n )}\r\n {customizationProps.pinTopItem && getTopItem()}\r\n {getElements(messageOnNoResults, size)}\r\n </DropdownContentListContainer>\r\n {customizationProps.action && customizationProps.actionLabel && (\r\n <DropdownContentActionButtonContainer $size={size} $scrollable={customizationProps.scrollable}>\r\n <Button\r\n width=\"100%\"\r\n role=\"menuitem\"\r\n icon={customizationProps.actionIcon}\r\n ref={actionButtonRef}\r\n loading={customizationProps.actionLoading}\r\n disabled={customizationProps.actionDisabled}\r\n variant={customizationProps.actionVariant ?? 'primary'}\r\n size={size}\r\n onClick={() => customizationProps.action() && setIsOpen(false)}>\r\n {customizationProps.actionLabel}\r\n </Button>\r\n </DropdownContentActionButtonContainer>\r\n )}\r\n </DropdownContentContainer>\r\n </Overlay>\r\n );\r\n },\r\n);\r\n\r\nexport default DropdownContent;\r\n"],"mappings":"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","ignoreList":[]}
@@ -29,7 +29,7 @@ var Wrapper = _styledComponents["default"].div(_templateObject || (_templateObje
29
29
  }, function (props) {
30
30
  return _.COLORS.getColor('primary_800', props.theme);
31
31
  }, _Iconbutton.IconButtonStyledSecondary, function (props) {
32
- return props.shouldNotInteract ? 'none' : 'auto';
32
+ return props.$shouldNotInteract ? 'none' : 'auto';
33
33
  });
34
34
  var QuickSearch = function QuickSearch(_ref) {
35
35
  var id = _ref.id,
@@ -119,7 +119,7 @@ var QuickSearch = function QuickSearch(_ref) {
119
119
  }
120
120
  }, [searchFieldVisible.visible, searchFieldInputRef]);
121
121
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapper, {
122
- shouldNotInteract: searchFieldVisible === null || searchFieldVisible === void 0 ? void 0 : searchFieldVisible.visible,
122
+ $shouldNotInteract: searchFieldVisible === null || searchFieldVisible === void 0 ? void 0 : searchFieldVisible.visible,
123
123
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_SearchField["default"], {
124
124
  ref: searchFieldRef,
125
125
  id: id,
@@ -1 +1 @@
1
- {"version":3,"file":"QuickSearch.cjs","names":["React","_interopRequireWildcard","require","_styledComponents","_Iconbutton","_styling","_types","_","_icons","_SearchBarInput","_interopRequireDefault","_SearchField","_jsxRuntime","_templateObject","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Wrapper","styled","div","_taggedTemplateLiteral2","StyledSearchField","props","COLORS","getColor","theme","IconButtonStyledSecondary","shouldNotInteract","QuickSearch","_ref","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","onKeyDown","size","margin","loading","useTheme","searchFieldRef","useRef","searchFieldInputRef","_React$useState","useState","visible","_React$useState2","_slicedToArray2","searchFieldVisible","setSearchFieldVisible","handleClickOutside","current","contains","target","length","handleKeyDown","key","handleBlur","_searchFieldRef$curre","relatedTarget","handleSearchIconAction","focus","detail","useEffect","document","addEventListener","removeEventListener","_searchFieldInputRef$","focusVisible","jsx","children","jsxs","ref","style","onBlur","className","term","focusParentRefs","SearchIconWrapper","role","concat","dataTestId","variant","shape","tabIndex","action","SystemIcons","Search","color","StyledIcon","hidden","_searchFieldInputRef$2","Clear","LoadingIndicator","Size","Small","propTypes","_propTypes","string","isRequired","func","bool","_default","exports"],"sources":["../../src/InputFields/QuickSearch.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled, { useTheme } from 'styled-components';\r\n\r\nimport IconButton, { IconButtonStyledSecondary } from '../Button/Iconbutton';\r\nimport { SearchIconWrapper, StyledIcon } from './styling';\r\nimport { Size } from '../types';\r\nimport { COLORS, LoadingIndicator } from '..';\r\nimport { SystemIcons } from '../icons';\r\nimport SearchBarInput from './components/SearchBarInput';\r\nimport SearchField, { StyledSearchField } from './components/SearchField';\r\n\r\nconst Wrapper = styled.div<{shouldNotInteract: boolean}>`\r\n width: 100%;\r\n\r\n ${StyledSearchField} {\r\n transition: box-shadow 0.2s ease-in-out, width 0.2s ease-in-out;\r\n\r\n background-color: transparent;\r\n\r\n &.small {\r\n width: 48px;\r\n }\r\n\r\n &.medium {\r\n width: 56px;\r\n }\r\n\r\n &.expanded {\r\n width: 100%;\r\n }\r\n\r\n box-shadow: none;\r\n\r\n &:hover {\r\n box-shadow: none;\r\n }\r\n\r\n &.expanded {\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n }\r\n\r\n &.expanded:hover,\r\n &.expanded:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n }\r\n\r\n ${IconButtonStyledSecondary} {\r\n pointer-events: ${(props) => (props.shouldNotInteract ? 'none' : 'auto')};\r\n }\r\n`;\r\n\r\nexport type QuickSearchProps = {\r\n /** Required. Id of the component. */\r\n id: string;\r\n /** Optional. Current search term entered by the user. */\r\n searchTerm?: string;\r\n /** Required. Handler to be called when user modified input. */\r\n setSearchTerm: (term: string) => void;\r\n /** Required. Handler to be called when user triggers search. */\r\n enterSearch: (e: any) => void;\r\n /** Required. Handler to be called when user clears input field. */\r\n removeSearch: (e: any) => void;\r\n /** Optional. Placeholder text to be shown in the input field when there is no input. */\r\n placeholder?: string;\r\n /** Optional. ARIA label to set on the input field. */\r\n performSearchLabel?: string;\r\n /** Optional. If disabled user can not interact with the search bar. */\r\n disabled?: boolean;\r\n /** Optional. Optional onkeydown handler to be set on the input field. */\r\n onKeyDown?: (e: React.KeyboardEvent) => void;\r\n /** Optional. Size of the component. Defaults to 'medium'. */\r\n size?: Size.Small | Size.Medium;\r\n /** Optional. Margin style attribute to be set on the input field. */\r\n margin?: string;\r\n /** Optional. If set then loading indicator will be shown on the right side of the input field. */\r\n loading?: boolean;\r\n};\r\n\r\nconst QuickSearch: React.FunctionComponent<QuickSearchProps> = ({\r\n id,\r\n searchTerm,\r\n setSearchTerm,\r\n enterSearch,\r\n removeSearch,\r\n placeholder,\r\n performSearchLabel,\r\n disabled,\r\n onKeyDown,\r\n size,\r\n margin,\r\n loading,\r\n}: QuickSearchProps) => {\r\n const theme = useTheme();\r\n const searchFieldRef = React.useRef<HTMLDivElement>(null);\r\n const searchFieldInputRef = React.useRef<HTMLInputElement>(null);\r\n\r\n const [searchFieldVisible, setSearchFieldVisible] = React.useState<{ visible: boolean; focus?: boolean }>({\r\n visible: false,\r\n });\r\n\r\n const handleClickOutside = (e: any) => {\r\n if (searchFieldRef?.current && !searchFieldRef.current.contains(e.target)) {\r\n if (searchFieldVisible?.visible && !searchTerm?.length) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: any) => {\r\n if (onKeyDown) {\r\n onKeyDown(e);\r\n }\r\n if (e.key === 'Escape') {\r\n if (searchFieldVisible?.visible && !searchTerm?.length) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n }\r\n };\r\n\r\n const handleBlur = (e: any) => {\r\n if (!searchTerm && (!e.relatedTarget || !searchFieldRef.current?.contains(e.relatedTarget))) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n };\r\n\r\n const handleSearchIconAction = (e: any) => {\r\n if (!searchFieldVisible?.visible) {\r\n setSearchFieldVisible({\r\n visible: !searchFieldVisible.visible,\r\n focus: !searchFieldVisible.visible && e?.detail !== 1,\r\n });\r\n }\r\n };\r\n\r\n // set search field visibility on search term change\r\n React.useEffect(() => {\r\n if (!!searchTerm?.length && !searchFieldVisible?.visible) {\r\n setSearchFieldVisible({ visible: true, focus: false });\r\n }\r\n }, [searchTerm, searchFieldVisible]);\r\n\r\n // register click outside handler\r\n React.useEffect(() => {\r\n document.addEventListener('click', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('click', handleClickOutside);\r\n };\r\n }, []);\r\n\r\n // focus search input on visibility change\r\n React.useEffect(() => {\r\n if (searchFieldVisible?.visible) {\r\n searchFieldInputRef?.current?.focus({ focusVisible: searchFieldVisible.focus } as any);\r\n }\r\n }, [searchFieldVisible.visible, searchFieldInputRef]);\r\n\r\n return (\r\n <Wrapper shouldNotInteract={searchFieldVisible?.visible}>\r\n <SearchField\r\n ref={searchFieldRef}\r\n id={id}\r\n size={size}\r\n searchTerm={searchTerm}\r\n style={{\r\n margin: margin,\r\n }}\r\n onBlur={handleBlur}\r\n className={searchFieldVisible?.visible ? 'expanded' : ''}>\r\n {searchFieldVisible?.visible && (\r\n <SearchBarInput\r\n placeholder={disabled ? '' : placeholder}\r\n id={id}\r\n ref={searchFieldInputRef}\r\n disabled={disabled}\r\n onKeyDown={handleKeyDown}\r\n size={size}\r\n setSearchTerm={(term: string) => setSearchTerm(term)}\r\n searchTerm={searchTerm}\r\n enterSearch={enterSearch}\r\n focusParentRefs={[searchFieldRef]}\r\n />\r\n )}\r\n <SearchIconWrapper className={size ? size : ''} role=\"button\" aria-label={performSearchLabel}>\r\n <IconButton\r\n id={`${id}_Searchbutton`}\r\n dataTestId={`${id}_Searchbutton`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n tabIndex={searchFieldVisible?.visible ? -1 : 0}\r\n action={handleSearchIconAction}>\r\n <SystemIcons.Search size=\"24px\" color={disabled ? COLORS.getColor('neutral_300', theme) : COLORS.getColor('neutral_600', theme)} />\r\n </IconButton>\r\n </SearchIconWrapper>\r\n <StyledIcon className={size ? size : ''} role=\"button\" hidden={!searchTerm || !searchFieldVisible?.visible}>\r\n <IconButton\r\n id={`${id}_Clearicon`}\r\n dataTestId={`${id}_Clearicon`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={(e) => {\r\n removeSearch(e);\r\n searchFieldInputRef?.current?.focus();\r\n }}>\r\n <SystemIcons.Clear size=\"24px\" color={disabled ? COLORS.getColor('neutral_300', theme) : COLORS.getColor('neutral_600', theme)} />\r\n </IconButton>\r\n </StyledIcon>\r\n {loading && searchFieldVisible?.visible && (\r\n <StyledIcon className={size ? size : ''}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.getColor('neutral_600', theme)} />\r\n </StyledIcon>\r\n )}\r\n </SearchField>\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default QuickSearch;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"QuickSearch.cjs","names":["React","_interopRequireWildcard","require","_styledComponents","_Iconbutton","_styling","_types","_","_icons","_SearchBarInput","_interopRequireDefault","_SearchField","_jsxRuntime","_templateObject","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Wrapper","styled","div","_taggedTemplateLiteral2","StyledSearchField","props","COLORS","getColor","theme","IconButtonStyledSecondary","$shouldNotInteract","QuickSearch","_ref","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","onKeyDown","size","margin","loading","useTheme","searchFieldRef","useRef","searchFieldInputRef","_React$useState","useState","visible","_React$useState2","_slicedToArray2","searchFieldVisible","setSearchFieldVisible","handleClickOutside","current","contains","target","length","handleKeyDown","key","handleBlur","_searchFieldRef$curre","relatedTarget","handleSearchIconAction","focus","detail","useEffect","document","addEventListener","removeEventListener","_searchFieldInputRef$","focusVisible","jsx","children","jsxs","ref","style","onBlur","className","term","focusParentRefs","SearchIconWrapper","role","concat","dataTestId","variant","shape","tabIndex","action","SystemIcons","Search","color","StyledIcon","hidden","_searchFieldInputRef$2","Clear","LoadingIndicator","Size","Small","propTypes","_propTypes","string","isRequired","func","bool","_default","exports"],"sources":["../../src/InputFields/QuickSearch.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled, { useTheme } from 'styled-components';\r\n\r\nimport IconButton, { IconButtonStyledSecondary } from '../Button/Iconbutton';\r\nimport { SearchIconWrapper, StyledIcon } from './styling';\r\nimport { Size } from '../types';\r\nimport { COLORS, LoadingIndicator } from '..';\r\nimport { SystemIcons } from '../icons';\r\nimport SearchBarInput from './components/SearchBarInput';\r\nimport SearchField, { StyledSearchField } from './components/SearchField';\r\n\r\nconst Wrapper = styled.div<{$shouldNotInteract: boolean}>`\r\n width: 100%;\r\n\r\n ${StyledSearchField} {\r\n transition: box-shadow 0.2s ease-in-out, width 0.2s ease-in-out;\r\n\r\n background-color: transparent;\r\n\r\n &.small {\r\n width: 48px;\r\n }\r\n\r\n &.medium {\r\n width: 56px;\r\n }\r\n\r\n &.expanded {\r\n width: 100%;\r\n }\r\n\r\n box-shadow: none;\r\n\r\n &:hover {\r\n box-shadow: none;\r\n }\r\n\r\n &.expanded {\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n }\r\n\r\n &.expanded:hover,\r\n &.expanded:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n }\r\n\r\n ${IconButtonStyledSecondary} {\r\n pointer-events: ${(props) => (props.$shouldNotInteract ? 'none' : 'auto')};\r\n }\r\n`;\r\n\r\nexport type QuickSearchProps = {\r\n /** Required. Id of the component. */\r\n id: string;\r\n /** Optional. Current search term entered by the user. */\r\n searchTerm?: string;\r\n /** Required. Handler to be called when user modified input. */\r\n setSearchTerm: (term: string) => void;\r\n /** Required. Handler to be called when user triggers search. */\r\n enterSearch: (e: any) => void;\r\n /** Required. Handler to be called when user clears input field. */\r\n removeSearch: (e: any) => void;\r\n /** Optional. Placeholder text to be shown in the input field when there is no input. */\r\n placeholder?: string;\r\n /** Optional. ARIA label to set on the input field. */\r\n performSearchLabel?: string;\r\n /** Optional. If disabled user can not interact with the search bar. */\r\n disabled?: boolean;\r\n /** Optional. Optional onkeydown handler to be set on the input field. */\r\n onKeyDown?: (e: React.KeyboardEvent) => void;\r\n /** Optional. Size of the component. Defaults to 'medium'. */\r\n size?: Size.Small | Size.Medium;\r\n /** Optional. Margin style attribute to be set on the input field. */\r\n margin?: string;\r\n /** Optional. If set then loading indicator will be shown on the right side of the input field. */\r\n loading?: boolean;\r\n};\r\n\r\nconst QuickSearch: React.FunctionComponent<QuickSearchProps> = ({\r\n id,\r\n searchTerm,\r\n setSearchTerm,\r\n enterSearch,\r\n removeSearch,\r\n placeholder,\r\n performSearchLabel,\r\n disabled,\r\n onKeyDown,\r\n size,\r\n margin,\r\n loading,\r\n}: QuickSearchProps) => {\r\n const theme = useTheme();\r\n const searchFieldRef = React.useRef<HTMLDivElement>(null);\r\n const searchFieldInputRef = React.useRef<HTMLInputElement>(null);\r\n\r\n const [searchFieldVisible, setSearchFieldVisible] = React.useState<{ visible: boolean; focus?: boolean }>({\r\n visible: false,\r\n });\r\n\r\n const handleClickOutside = (e: any) => {\r\n if (searchFieldRef?.current && !searchFieldRef.current.contains(e.target)) {\r\n if (searchFieldVisible?.visible && !searchTerm?.length) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: any) => {\r\n if (onKeyDown) {\r\n onKeyDown(e);\r\n }\r\n if (e.key === 'Escape') {\r\n if (searchFieldVisible?.visible && !searchTerm?.length) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n }\r\n };\r\n\r\n const handleBlur = (e: any) => {\r\n if (!searchTerm && (!e.relatedTarget || !searchFieldRef.current?.contains(e.relatedTarget))) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n };\r\n\r\n const handleSearchIconAction = (e: any) => {\r\n if (!searchFieldVisible?.visible) {\r\n setSearchFieldVisible({\r\n visible: !searchFieldVisible.visible,\r\n focus: !searchFieldVisible.visible && e?.detail !== 1,\r\n });\r\n }\r\n };\r\n\r\n // set search field visibility on search term change\r\n React.useEffect(() => {\r\n if (!!searchTerm?.length && !searchFieldVisible?.visible) {\r\n setSearchFieldVisible({ visible: true, focus: false });\r\n }\r\n }, [searchTerm, searchFieldVisible]);\r\n\r\n // register click outside handler\r\n React.useEffect(() => {\r\n document.addEventListener('click', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('click', handleClickOutside);\r\n };\r\n }, []);\r\n\r\n // focus search input on visibility change\r\n React.useEffect(() => {\r\n if (searchFieldVisible?.visible) {\r\n searchFieldInputRef?.current?.focus({ focusVisible: searchFieldVisible.focus } as any);\r\n }\r\n }, [searchFieldVisible.visible, searchFieldInputRef]);\r\n\r\n return (\r\n <Wrapper $shouldNotInteract={searchFieldVisible?.visible}>\r\n <SearchField\r\n ref={searchFieldRef}\r\n id={id}\r\n size={size}\r\n searchTerm={searchTerm}\r\n style={{\r\n margin: margin,\r\n }}\r\n onBlur={handleBlur}\r\n className={searchFieldVisible?.visible ? 'expanded' : ''}>\r\n {searchFieldVisible?.visible && (\r\n <SearchBarInput\r\n placeholder={disabled ? '' : placeholder}\r\n id={id}\r\n ref={searchFieldInputRef}\r\n disabled={disabled}\r\n onKeyDown={handleKeyDown}\r\n size={size}\r\n setSearchTerm={(term: string) => setSearchTerm(term)}\r\n searchTerm={searchTerm}\r\n enterSearch={enterSearch}\r\n focusParentRefs={[searchFieldRef]}\r\n />\r\n )}\r\n <SearchIconWrapper className={size ? size : ''} role=\"button\" aria-label={performSearchLabel}>\r\n <IconButton\r\n id={`${id}_Searchbutton`}\r\n dataTestId={`${id}_Searchbutton`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n tabIndex={searchFieldVisible?.visible ? -1 : 0}\r\n action={handleSearchIconAction}>\r\n <SystemIcons.Search size=\"24px\" color={disabled ? COLORS.getColor('neutral_300', theme) : COLORS.getColor('neutral_600', theme)} />\r\n </IconButton>\r\n </SearchIconWrapper>\r\n <StyledIcon className={size ? size : ''} role=\"button\" hidden={!searchTerm || !searchFieldVisible?.visible}>\r\n <IconButton\r\n id={`${id}_Clearicon`}\r\n dataTestId={`${id}_Clearicon`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={(e) => {\r\n removeSearch(e);\r\n searchFieldInputRef?.current?.focus();\r\n }}>\r\n <SystemIcons.Clear size=\"24px\" color={disabled ? COLORS.getColor('neutral_300', theme) : COLORS.getColor('neutral_600', theme)} />\r\n </IconButton>\r\n </StyledIcon>\r\n {loading && searchFieldVisible?.visible && (\r\n <StyledIcon className={size ? size : ''}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.getColor('neutral_600', theme)} />\r\n </StyledIcon>\r\n )}\r\n </SearchField>\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default QuickSearch;\r\n"],"mappings":"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","ignoreList":[]}
@@ -20,7 +20,7 @@ var Wrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLi
20
20
  }, function (props) {
21
21
  return COLORS.getColor('primary_800', props.theme);
22
22
  }, IconButtonStyledSecondary, function (props) {
23
- return props.shouldNotInteract ? 'none' : 'auto';
23
+ return props.$shouldNotInteract ? 'none' : 'auto';
24
24
  });
25
25
  var QuickSearch = function QuickSearch(_ref) {
26
26
  var id = _ref.id,
@@ -110,7 +110,7 @@ var QuickSearch = function QuickSearch(_ref) {
110
110
  }
111
111
  }, [searchFieldVisible.visible, searchFieldInputRef]);
112
112
  return /*#__PURE__*/_jsx(Wrapper, {
113
- shouldNotInteract: searchFieldVisible === null || searchFieldVisible === void 0 ? void 0 : searchFieldVisible.visible,
113
+ $shouldNotInteract: searchFieldVisible === null || searchFieldVisible === void 0 ? void 0 : searchFieldVisible.visible,
114
114
  children: /*#__PURE__*/_jsxs(SearchField, {
115
115
  ref: searchFieldRef,
116
116
  id: id,
@@ -1 +1 @@
1
- {"version":3,"file":"QuickSearch.js","names":["React","styled","useTheme","IconButton","IconButtonStyledSecondary","SearchIconWrapper","StyledIcon","Size","COLORS","LoadingIndicator","SystemIcons","SearchBarInput","SearchField","StyledSearchField","jsx","_jsx","jsxs","_jsxs","Wrapper","div","_templateObject","_taggedTemplateLiteral","props","getColor","theme","shouldNotInteract","QuickSearch","_ref","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","onKeyDown","size","margin","loading","searchFieldRef","useRef","searchFieldInputRef","_React$useState","useState","visible","_React$useState2","_slicedToArray","searchFieldVisible","setSearchFieldVisible","handleClickOutside","e","current","contains","target","length","handleKeyDown","key","handleBlur","_searchFieldRef$curre","relatedTarget","handleSearchIconAction","focus","detail","useEffect","document","addEventListener","removeEventListener","_searchFieldInputRef$","focusVisible","children","ref","style","onBlur","className","term","focusParentRefs","role","concat","dataTestId","variant","shape","tabIndex","action","Search","color","hidden","_searchFieldInputRef$2","Clear","Small","propTypes","_pt","string","isRequired","func","bool"],"sources":["../../src/InputFields/QuickSearch.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled, { useTheme } from 'styled-components';\r\n\r\nimport IconButton, { IconButtonStyledSecondary } from '../Button/Iconbutton';\r\nimport { SearchIconWrapper, StyledIcon } from './styling';\r\nimport { Size } from '../types';\r\nimport { COLORS, LoadingIndicator } from '..';\r\nimport { SystemIcons } from '../icons';\r\nimport SearchBarInput from './components/SearchBarInput';\r\nimport SearchField, { StyledSearchField } from './components/SearchField';\r\n\r\nconst Wrapper = styled.div<{shouldNotInteract: boolean}>`\r\n width: 100%;\r\n\r\n ${StyledSearchField} {\r\n transition: box-shadow 0.2s ease-in-out, width 0.2s ease-in-out;\r\n\r\n background-color: transparent;\r\n\r\n &.small {\r\n width: 48px;\r\n }\r\n\r\n &.medium {\r\n width: 56px;\r\n }\r\n\r\n &.expanded {\r\n width: 100%;\r\n }\r\n\r\n box-shadow: none;\r\n\r\n &:hover {\r\n box-shadow: none;\r\n }\r\n\r\n &.expanded {\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n }\r\n\r\n &.expanded:hover,\r\n &.expanded:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n }\r\n\r\n ${IconButtonStyledSecondary} {\r\n pointer-events: ${(props) => (props.shouldNotInteract ? 'none' : 'auto')};\r\n }\r\n`;\r\n\r\nexport type QuickSearchProps = {\r\n /** Required. Id of the component. */\r\n id: string;\r\n /** Optional. Current search term entered by the user. */\r\n searchTerm?: string;\r\n /** Required. Handler to be called when user modified input. */\r\n setSearchTerm: (term: string) => void;\r\n /** Required. Handler to be called when user triggers search. */\r\n enterSearch: (e: any) => void;\r\n /** Required. Handler to be called when user clears input field. */\r\n removeSearch: (e: any) => void;\r\n /** Optional. Placeholder text to be shown in the input field when there is no input. */\r\n placeholder?: string;\r\n /** Optional. ARIA label to set on the input field. */\r\n performSearchLabel?: string;\r\n /** Optional. If disabled user can not interact with the search bar. */\r\n disabled?: boolean;\r\n /** Optional. Optional onkeydown handler to be set on the input field. */\r\n onKeyDown?: (e: React.KeyboardEvent) => void;\r\n /** Optional. Size of the component. Defaults to 'medium'. */\r\n size?: Size.Small | Size.Medium;\r\n /** Optional. Margin style attribute to be set on the input field. */\r\n margin?: string;\r\n /** Optional. If set then loading indicator will be shown on the right side of the input field. */\r\n loading?: boolean;\r\n};\r\n\r\nconst QuickSearch: React.FunctionComponent<QuickSearchProps> = ({\r\n id,\r\n searchTerm,\r\n setSearchTerm,\r\n enterSearch,\r\n removeSearch,\r\n placeholder,\r\n performSearchLabel,\r\n disabled,\r\n onKeyDown,\r\n size,\r\n margin,\r\n loading,\r\n}: QuickSearchProps) => {\r\n const theme = useTheme();\r\n const searchFieldRef = React.useRef<HTMLDivElement>(null);\r\n const searchFieldInputRef = React.useRef<HTMLInputElement>(null);\r\n\r\n const [searchFieldVisible, setSearchFieldVisible] = React.useState<{ visible: boolean; focus?: boolean }>({\r\n visible: false,\r\n });\r\n\r\n const handleClickOutside = (e: any) => {\r\n if (searchFieldRef?.current && !searchFieldRef.current.contains(e.target)) {\r\n if (searchFieldVisible?.visible && !searchTerm?.length) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: any) => {\r\n if (onKeyDown) {\r\n onKeyDown(e);\r\n }\r\n if (e.key === 'Escape') {\r\n if (searchFieldVisible?.visible && !searchTerm?.length) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n }\r\n };\r\n\r\n const handleBlur = (e: any) => {\r\n if (!searchTerm && (!e.relatedTarget || !searchFieldRef.current?.contains(e.relatedTarget))) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n };\r\n\r\n const handleSearchIconAction = (e: any) => {\r\n if (!searchFieldVisible?.visible) {\r\n setSearchFieldVisible({\r\n visible: !searchFieldVisible.visible,\r\n focus: !searchFieldVisible.visible && e?.detail !== 1,\r\n });\r\n }\r\n };\r\n\r\n // set search field visibility on search term change\r\n React.useEffect(() => {\r\n if (!!searchTerm?.length && !searchFieldVisible?.visible) {\r\n setSearchFieldVisible({ visible: true, focus: false });\r\n }\r\n }, [searchTerm, searchFieldVisible]);\r\n\r\n // register click outside handler\r\n React.useEffect(() => {\r\n document.addEventListener('click', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('click', handleClickOutside);\r\n };\r\n }, []);\r\n\r\n // focus search input on visibility change\r\n React.useEffect(() => {\r\n if (searchFieldVisible?.visible) {\r\n searchFieldInputRef?.current?.focus({ focusVisible: searchFieldVisible.focus } as any);\r\n }\r\n }, [searchFieldVisible.visible, searchFieldInputRef]);\r\n\r\n return (\r\n <Wrapper shouldNotInteract={searchFieldVisible?.visible}>\r\n <SearchField\r\n ref={searchFieldRef}\r\n id={id}\r\n size={size}\r\n searchTerm={searchTerm}\r\n style={{\r\n margin: margin,\r\n }}\r\n onBlur={handleBlur}\r\n className={searchFieldVisible?.visible ? 'expanded' : ''}>\r\n {searchFieldVisible?.visible && (\r\n <SearchBarInput\r\n placeholder={disabled ? '' : placeholder}\r\n id={id}\r\n ref={searchFieldInputRef}\r\n disabled={disabled}\r\n onKeyDown={handleKeyDown}\r\n size={size}\r\n setSearchTerm={(term: string) => setSearchTerm(term)}\r\n searchTerm={searchTerm}\r\n enterSearch={enterSearch}\r\n focusParentRefs={[searchFieldRef]}\r\n />\r\n )}\r\n <SearchIconWrapper className={size ? size : ''} role=\"button\" aria-label={performSearchLabel}>\r\n <IconButton\r\n id={`${id}_Searchbutton`}\r\n dataTestId={`${id}_Searchbutton`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n tabIndex={searchFieldVisible?.visible ? -1 : 0}\r\n action={handleSearchIconAction}>\r\n <SystemIcons.Search size=\"24px\" color={disabled ? COLORS.getColor('neutral_300', theme) : COLORS.getColor('neutral_600', theme)} />\r\n </IconButton>\r\n </SearchIconWrapper>\r\n <StyledIcon className={size ? size : ''} role=\"button\" hidden={!searchTerm || !searchFieldVisible?.visible}>\r\n <IconButton\r\n id={`${id}_Clearicon`}\r\n dataTestId={`${id}_Clearicon`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={(e) => {\r\n removeSearch(e);\r\n searchFieldInputRef?.current?.focus();\r\n }}>\r\n <SystemIcons.Clear size=\"24px\" color={disabled ? COLORS.getColor('neutral_300', theme) : COLORS.getColor('neutral_600', theme)} />\r\n </IconButton>\r\n </StyledIcon>\r\n {loading && searchFieldVisible?.visible && (\r\n <StyledIcon className={size ? size : ''}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.getColor('neutral_600', theme)} />\r\n </StyledIcon>\r\n )}\r\n </SearchField>\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default QuickSearch;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"QuickSearch.js","names":["React","styled","useTheme","IconButton","IconButtonStyledSecondary","SearchIconWrapper","StyledIcon","Size","COLORS","LoadingIndicator","SystemIcons","SearchBarInput","SearchField","StyledSearchField","jsx","_jsx","jsxs","_jsxs","Wrapper","div","_templateObject","_taggedTemplateLiteral","props","getColor","theme","$shouldNotInteract","QuickSearch","_ref","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","onKeyDown","size","margin","loading","searchFieldRef","useRef","searchFieldInputRef","_React$useState","useState","visible","_React$useState2","_slicedToArray","searchFieldVisible","setSearchFieldVisible","handleClickOutside","e","current","contains","target","length","handleKeyDown","key","handleBlur","_searchFieldRef$curre","relatedTarget","handleSearchIconAction","focus","detail","useEffect","document","addEventListener","removeEventListener","_searchFieldInputRef$","focusVisible","children","ref","style","onBlur","className","term","focusParentRefs","role","concat","dataTestId","variant","shape","tabIndex","action","Search","color","hidden","_searchFieldInputRef$2","Clear","Small","propTypes","_pt","string","isRequired","func","bool"],"sources":["../../src/InputFields/QuickSearch.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled, { useTheme } from 'styled-components';\r\n\r\nimport IconButton, { IconButtonStyledSecondary } from '../Button/Iconbutton';\r\nimport { SearchIconWrapper, StyledIcon } from './styling';\r\nimport { Size } from '../types';\r\nimport { COLORS, LoadingIndicator } from '..';\r\nimport { SystemIcons } from '../icons';\r\nimport SearchBarInput from './components/SearchBarInput';\r\nimport SearchField, { StyledSearchField } from './components/SearchField';\r\n\r\nconst Wrapper = styled.div<{$shouldNotInteract: boolean}>`\r\n width: 100%;\r\n\r\n ${StyledSearchField} {\r\n transition: box-shadow 0.2s ease-in-out, width 0.2s ease-in-out;\r\n\r\n background-color: transparent;\r\n\r\n &.small {\r\n width: 48px;\r\n }\r\n\r\n &.medium {\r\n width: 56px;\r\n }\r\n\r\n &.expanded {\r\n width: 100%;\r\n }\r\n\r\n box-shadow: none;\r\n\r\n &:hover {\r\n box-shadow: none;\r\n }\r\n\r\n &.expanded {\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n }\r\n\r\n &.expanded:hover,\r\n &.expanded:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n }\r\n\r\n ${IconButtonStyledSecondary} {\r\n pointer-events: ${(props) => (props.$shouldNotInteract ? 'none' : 'auto')};\r\n }\r\n`;\r\n\r\nexport type QuickSearchProps = {\r\n /** Required. Id of the component. */\r\n id: string;\r\n /** Optional. Current search term entered by the user. */\r\n searchTerm?: string;\r\n /** Required. Handler to be called when user modified input. */\r\n setSearchTerm: (term: string) => void;\r\n /** Required. Handler to be called when user triggers search. */\r\n enterSearch: (e: any) => void;\r\n /** Required. Handler to be called when user clears input field. */\r\n removeSearch: (e: any) => void;\r\n /** Optional. Placeholder text to be shown in the input field when there is no input. */\r\n placeholder?: string;\r\n /** Optional. ARIA label to set on the input field. */\r\n performSearchLabel?: string;\r\n /** Optional. If disabled user can not interact with the search bar. */\r\n disabled?: boolean;\r\n /** Optional. Optional onkeydown handler to be set on the input field. */\r\n onKeyDown?: (e: React.KeyboardEvent) => void;\r\n /** Optional. Size of the component. Defaults to 'medium'. */\r\n size?: Size.Small | Size.Medium;\r\n /** Optional. Margin style attribute to be set on the input field. */\r\n margin?: string;\r\n /** Optional. If set then loading indicator will be shown on the right side of the input field. */\r\n loading?: boolean;\r\n};\r\n\r\nconst QuickSearch: React.FunctionComponent<QuickSearchProps> = ({\r\n id,\r\n searchTerm,\r\n setSearchTerm,\r\n enterSearch,\r\n removeSearch,\r\n placeholder,\r\n performSearchLabel,\r\n disabled,\r\n onKeyDown,\r\n size,\r\n margin,\r\n loading,\r\n}: QuickSearchProps) => {\r\n const theme = useTheme();\r\n const searchFieldRef = React.useRef<HTMLDivElement>(null);\r\n const searchFieldInputRef = React.useRef<HTMLInputElement>(null);\r\n\r\n const [searchFieldVisible, setSearchFieldVisible] = React.useState<{ visible: boolean; focus?: boolean }>({\r\n visible: false,\r\n });\r\n\r\n const handleClickOutside = (e: any) => {\r\n if (searchFieldRef?.current && !searchFieldRef.current.contains(e.target)) {\r\n if (searchFieldVisible?.visible && !searchTerm?.length) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: any) => {\r\n if (onKeyDown) {\r\n onKeyDown(e);\r\n }\r\n if (e.key === 'Escape') {\r\n if (searchFieldVisible?.visible && !searchTerm?.length) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n }\r\n };\r\n\r\n const handleBlur = (e: any) => {\r\n if (!searchTerm && (!e.relatedTarget || !searchFieldRef.current?.contains(e.relatedTarget))) {\r\n setSearchFieldVisible({ visible: false });\r\n }\r\n };\r\n\r\n const handleSearchIconAction = (e: any) => {\r\n if (!searchFieldVisible?.visible) {\r\n setSearchFieldVisible({\r\n visible: !searchFieldVisible.visible,\r\n focus: !searchFieldVisible.visible && e?.detail !== 1,\r\n });\r\n }\r\n };\r\n\r\n // set search field visibility on search term change\r\n React.useEffect(() => {\r\n if (!!searchTerm?.length && !searchFieldVisible?.visible) {\r\n setSearchFieldVisible({ visible: true, focus: false });\r\n }\r\n }, [searchTerm, searchFieldVisible]);\r\n\r\n // register click outside handler\r\n React.useEffect(() => {\r\n document.addEventListener('click', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('click', handleClickOutside);\r\n };\r\n }, []);\r\n\r\n // focus search input on visibility change\r\n React.useEffect(() => {\r\n if (searchFieldVisible?.visible) {\r\n searchFieldInputRef?.current?.focus({ focusVisible: searchFieldVisible.focus } as any);\r\n }\r\n }, [searchFieldVisible.visible, searchFieldInputRef]);\r\n\r\n return (\r\n <Wrapper $shouldNotInteract={searchFieldVisible?.visible}>\r\n <SearchField\r\n ref={searchFieldRef}\r\n id={id}\r\n size={size}\r\n searchTerm={searchTerm}\r\n style={{\r\n margin: margin,\r\n }}\r\n onBlur={handleBlur}\r\n className={searchFieldVisible?.visible ? 'expanded' : ''}>\r\n {searchFieldVisible?.visible && (\r\n <SearchBarInput\r\n placeholder={disabled ? '' : placeholder}\r\n id={id}\r\n ref={searchFieldInputRef}\r\n disabled={disabled}\r\n onKeyDown={handleKeyDown}\r\n size={size}\r\n setSearchTerm={(term: string) => setSearchTerm(term)}\r\n searchTerm={searchTerm}\r\n enterSearch={enterSearch}\r\n focusParentRefs={[searchFieldRef]}\r\n />\r\n )}\r\n <SearchIconWrapper className={size ? size : ''} role=\"button\" aria-label={performSearchLabel}>\r\n <IconButton\r\n id={`${id}_Searchbutton`}\r\n dataTestId={`${id}_Searchbutton`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n tabIndex={searchFieldVisible?.visible ? -1 : 0}\r\n action={handleSearchIconAction}>\r\n <SystemIcons.Search size=\"24px\" color={disabled ? COLORS.getColor('neutral_300', theme) : COLORS.getColor('neutral_600', theme)} />\r\n </IconButton>\r\n </SearchIconWrapper>\r\n <StyledIcon className={size ? size : ''} role=\"button\" hidden={!searchTerm || !searchFieldVisible?.visible}>\r\n <IconButton\r\n id={`${id}_Clearicon`}\r\n dataTestId={`${id}_Clearicon`}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n action={(e) => {\r\n removeSearch(e);\r\n searchFieldInputRef?.current?.focus();\r\n }}>\r\n <SystemIcons.Clear size=\"24px\" color={disabled ? COLORS.getColor('neutral_300', theme) : COLORS.getColor('neutral_600', theme)} />\r\n </IconButton>\r\n </StyledIcon>\r\n {loading && searchFieldVisible?.visible && (\r\n <StyledIcon className={size ? size : ''}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.getColor('neutral_600', theme)} />\r\n </StyledIcon>\r\n )}\r\n </SearchField>\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default QuickSearch;\r\n"],"mappings":"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","ignoreList":[]}
@@ -24,11 +24,11 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
24
24
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
25
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
26
  var StyledRadioButton = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n width: 100%;\n min-height: 48px;\n min-width: 48px;\n\n ", "\n cursor: pointer;\n\n color: ", ";\n\n .pointerTransparent {\n pointer-events: none;\n }\n\n .radio-button-icon {\n margin: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n height: 36px;\n min-width: 36px;\n border-radius: 50%;\n\n svg {\n color: ", ";\n }\n }\n\n .radio-button-label {\n user-select: none;\n display: flex;\n flex-direction: column;\n\n label {\n cursor: inherit;\n }\n\n span {\n ", "\n }\n }\n\n &.small {\n ", "\n .radio-button-label {\n padding-top: 14px;\n }\n }\n\n &.medium {\n ", "\n .radio-button-label {\n padding-top: 12px;\n }\n }\n\n &.large {\n ", "\n .radio-button-label {\n padding-top: 12px;\n }\n }\n\n &:not(.disabled):focus {\n ", "\n }\n\n &:not(.disabled):hover {\n .radio-button-icon {\n background-color: ", ";\n\n svg {\n color: ", ";\n }\n }\n }\n\n &:not(.disabled):active {\n .radio-button-icon {\n background: ", ";\n\n svg {\n color: ", ";\n }\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n\n color: ", ";\n\n .radio-button-icon,\n .radio-button-label {\n pointer-events: none;\n }\n\n .radio-button-icon {\n background-color: ", ";\n }\n\n .radio-button-icon svg {\n color: ", ";\n }\n }\n\n &.dropdown-hover:not(.disabled) {\n .radio-button-icon {\n background-color: ", ";\n\n svg {\n color: ", ";\n }\n }\n }\n"])), function (props) {
27
- return props.margin ? "margin: ".concat(props.margin, ";") : '';
27
+ return props.$margin ? "margin: ".concat(props.$margin, ";") : '';
28
28
  }, function (props) {
29
29
  return _styles.COLORS.getColor('black', props.theme);
30
30
  }, function (props) {
31
- return props.selected ? _styles.COLORS.getColor('primary_500', props.theme) : props.invalid ? _styles.COLORS.getColor('critical_400', props.theme) : _styles.COLORS.getColor('neutral_600', props.theme);
31
+ return props.$selected ? _styles.COLORS.getColor('primary_500', props.theme) : props.$invalid ? _styles.COLORS.getColor('critical_400', props.theme) : _styles.COLORS.getColor('neutral_600', props.theme);
32
32
  }, function (props) {
33
33
  return (0, _styles.ComponentXXSStyling)(_styles.ComponentTextStyle.Regular, _styles.COLORS.getColor('black', props.theme));
34
34
  }, function (props) {
@@ -80,18 +80,18 @@ var RadioButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
80
80
  size = (_size = size) !== null && _size !== void 0 ? _size : _types.Size.Medium;
81
81
  var cls = "".concat(size, " ").concat(className || '', " ").concat(disabled ? ' disabled' : '');
82
82
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledRadioButton, _objectSpread(_objectSpread({
83
- margin: margin,
83
+ $margin: margin,
84
84
  ref: ref,
85
85
  onClick: function onClick() {
86
86
  return !disabled && select(!selected);
87
87
  },
88
88
  onMouseDown: _common.defaultOnMouseDownHandler,
89
89
  onKeyDown: onKeyPress,
90
- disabled: disabled,
90
+ $disabled: disabled,
91
91
  className: cls,
92
92
  tabIndex: disabled ? -1 : tabIndexVal ? tabIndexVal : 0,
93
- invalid: invalid,
94
- selected: selected
93
+ $invalid: invalid,
94
+ $selected: selected
95
95
  }, rest), {}, {
96
96
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
97
97
  className: 'radio-button-icon',