@laerdal/life-react-components 1.6.1-dev.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Banners/Banner.cjs +21 -5
- package/dist/Banners/Banner.cjs.map +1 -1
- package/dist/Banners/Banner.js +20 -5
- package/dist/Banners/Banner.js.map +1 -1
- package/dist/Button/Iconbutton.cjs +4 -1
- package/dist/Button/Iconbutton.cjs.map +1 -1
- package/dist/Button/Iconbutton.d.ts +2 -0
- package/dist/Button/Iconbutton.js +4 -1
- package/dist/Button/Iconbutton.js.map +1 -1
- package/dist/Card/CardTopSection.cjs +2 -2
- package/dist/Card/CardTopSection.cjs.map +1 -1
- package/dist/Card/CardTopSection.js +2 -2
- package/dist/Card/CardTopSection.js.map +1 -1
- package/dist/Chips/ActionChip.cjs +21 -28
- package/dist/Chips/ActionChip.cjs.map +1 -1
- package/dist/Chips/ActionChip.js +23 -30
- package/dist/Chips/ActionChip.js.map +1 -1
- package/dist/Chips/ChipInput.cjs.map +1 -1
- package/dist/Chips/ChipInput.js.map +1 -1
- package/dist/Chips/ChipStyles.cjs +13 -15
- package/dist/Chips/ChipStyles.cjs.map +1 -1
- package/dist/Chips/ChipStyles.d.ts +2 -6
- package/dist/Chips/ChipStyles.js +6 -12
- package/dist/Chips/ChipStyles.js.map +1 -1
- package/dist/Chips/ChipTypes.d.ts +7 -9
- package/dist/Chips/ChoiceChips.cjs +13 -7
- package/dist/Chips/ChoiceChips.cjs.map +1 -1
- package/dist/Chips/ChoiceChips.js +13 -8
- package/dist/Chips/ChoiceChips.js.map +1 -1
- package/dist/Chips/FilterChip.cjs +21 -28
- package/dist/Chips/FilterChip.cjs.map +1 -1
- package/dist/Chips/FilterChip.js +24 -31
- package/dist/Chips/FilterChip.js.map +1 -1
- package/dist/Chips/InputChip.cjs +44 -44
- package/dist/Chips/InputChip.cjs.map +1 -1
- package/dist/Chips/InputChip.js +46 -45
- package/dist/Chips/InputChip.js.map +1 -1
- package/dist/Dropdown/ChipDropdownInput.cjs +1 -1
- package/dist/Dropdown/ChipDropdownInput.cjs.map +1 -1
- package/dist/Dropdown/ChipDropdownInput.js +1 -1
- package/dist/Dropdown/ChipDropdownInput.js.map +1 -1
- package/dist/Dropdown/DropdownContent.cjs +2 -2
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.js +3 -3
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs +3 -1
- package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.js +2 -1
- package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.js.map +1 -1
- package/dist/HyperLink/HyperLink.cjs +3 -1
- package/dist/HyperLink/HyperLink.cjs.map +1 -1
- package/dist/HyperLink/HyperLink.d.ts +4 -0
- package/dist/HyperLink/HyperLink.js +1 -1
- package/dist/HyperLink/HyperLink.js.map +1 -1
- package/dist/HyperLink/styling.cjs +1 -1
- package/dist/HyperLink/styling.cjs.map +1 -1
- package/dist/HyperLink/styling.js +1 -1
- package/dist/HyperLink/styling.js.map +1 -1
- package/dist/Image/ImageWithFallbacks.cjs +122 -0
- package/dist/Image/ImageWithFallbacks.cjs.map +1 -0
- package/dist/Image/ImageWithFallbacks.d.ts +21 -0
- package/dist/Image/ImageWithFallbacks.js +109 -0
- package/dist/Image/ImageWithFallbacks.js.map +1 -0
- package/dist/Image/index.cjs +16 -0
- package/dist/Image/index.cjs.map +1 -0
- package/dist/Image/index.d.ts +2 -0
- package/dist/Image/index.js +3 -0
- package/dist/Image/index.js.map +1 -0
- package/dist/InputFields/DatepickerField.cjs +56 -18
- package/dist/InputFields/DatepickerField.cjs.map +1 -1
- package/dist/InputFields/DatepickerField.js +54 -17
- package/dist/InputFields/DatepickerField.js.map +1 -1
- package/dist/InputFields/styling.cjs +2 -2
- package/dist/InputFields/styling.cjs.map +1 -1
- package/dist/InputFields/styling.js +2 -2
- package/dist/InputFields/styling.js.map +1 -1
- package/dist/Modals/ModalContainer.cjs +3 -2
- package/dist/Modals/ModalContainer.cjs.map +1 -1
- package/dist/Modals/ModalContainer.js +3 -2
- package/dist/Modals/ModalContainer.js.map +1 -1
- package/dist/Modals/ModalContent.cjs +235 -0
- package/dist/Modals/ModalContent.cjs.map +1 -0
- package/dist/Modals/ModalContent.d.ts +18 -0
- package/dist/Modals/ModalContent.js +204 -0
- package/dist/Modals/ModalContent.js.map +1 -0
- package/dist/Modals/ModalDialog.cjs +68 -26
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.d.ts +6 -1
- package/dist/Modals/ModalDialog.js +70 -27
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/Modals/ModalStyles.cjs +17 -5
- package/dist/Modals/ModalStyles.cjs.map +1 -1
- package/dist/Modals/ModalStyles.d.ts +2 -0
- package/dist/Modals/ModalStyles.js +16 -5
- package/dist/Modals/ModalStyles.js.map +1 -1
- package/dist/Modals/ModalTypes.d.ts +5 -0
- package/dist/Modals/index.cjs +8 -0
- package/dist/Modals/index.cjs.map +1 -1
- package/dist/Modals/index.d.ts +3 -2
- package/dist/Modals/index.js +2 -1
- package/dist/Modals/index.js.map +1 -1
- package/dist/SkipToContent/SkipToContent.cjs +2 -2
- package/dist/SkipToContent/SkipToContent.cjs.map +1 -1
- package/dist/SkipToContent/SkipToContent.js +2 -2
- package/dist/SkipToContent/SkipToContent.js.map +1 -1
- package/dist/Switcher/MobileSwitcherMenu.cjs +3 -1
- package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
- package/dist/Switcher/MobileSwitcherMenu.js +2 -1
- package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
- package/dist/common/HoverWithin.cjs +63 -0
- package/dist/common/HoverWithin.cjs.map +1 -0
- package/dist/common/HoverWithin.d.ts +2 -0
- package/dist/common/HoverWithin.js +51 -0
- package/dist/common/HoverWithin.js.map +1 -0
- package/dist/common/index.cjs +8 -0
- package/dist/common/index.cjs.map +1 -1
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/index.cjs +14 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/styles/index.cjs +7 -1
- package/dist/styles/index.cjs.map +1 -1
- package/dist/styles/index.d.ts +2 -1
- package/dist/styles/index.js +5 -1
- package/dist/styles/index.js.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","width","Z_INDEXES","dropdown","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","neutral_600","neutral_500","MenuContentContainer","ComponentTextStyle","Bold","Small","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","React","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","key","preventDefault","focusedNow","undefined","filtered","haveTopItem","i","disabled","shiftKey","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","ref","createRef","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","stopPropagation","getElements","number","customContent","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport {Size} from '../types';\nimport {ButtonDropdownContentStyling} from './CommonStyling';\nimport {\n ComponentLStyling,\n ComponentXLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle\n} from '../styles/typography';\nimport {COLORS} from '../styles';\nimport {Checkbox, RadioButton} from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{ size?: Size }>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n\n > *:active,\n > *.active {\n z-index: ${Z_INDEXES.active};\n }\n\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n\n word-break: break-word;\n }\n\n /* width */\n\n ::-webkit-scrollbar {\n width: 4px;\n cursor: pointer;\n }\n\n /* Track */\n\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{ size?: Size }>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' :\n props.size == Size.Medium ? '12px' :\n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{ size?: Size }>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{ size?: Size, scrollable?: boolean }>`\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.neutral_200};` : '')}\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\n\n padding: ${(props) => props.size === Size.Small || !props.size\n ? '4px 16px 0px'\n : props.size === Size.Medium\n ? '12px 16px 8px'\n : '16px 16px 12px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n }) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n if (focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Tab') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n e.shiftKey ? focusedNow-- : focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n const focusThis = focused === 0 && !haveTopItem() ? 1 : focused;\n if (focusThis !== focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen, focused]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n\n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {\n }} label={selectedFirst?.displayLabel ?? selectedFirst?.value}\n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem\n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n item={item}\n size={size}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef}\n scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\"/>\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => {\n if (customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","width","Z_INDEXES","dropdown","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","Small","MenuContentContainer","ComponentTextStyle","Bold","neutral_500","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","React","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","key","preventDefault","focusedNow","undefined","filtered","haveTopItem","i","disabled","shiftKey","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","ref","createRef","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","stopPropagation","getElements","number","customContent","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport {Size} from '../types';\nimport {ButtonDropdownContentStyling} from './CommonStyling';\nimport {\n ComponentLStyling,\n ComponentXLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle\n} from '../styles/typography';\nimport {COLORS, scrollBarStyling} from '../styles';\nimport {Checkbox, RadioButton} from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{ size?: Size }>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n\n > *:active,\n > *.active {\n z-index: ${Z_INDEXES.active};\n }\n\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n\n word-break: break-word;\n }\n\n ${scrollBarStyling(Size.Small)}\n`;\n\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{ size?: Size }>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' :\n props.size == Size.Medium ? '12px' :\n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{ size?: Size }>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{ size?: Size, scrollable?: boolean }>`\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.neutral_200};` : '')}\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\n\n padding: ${(props) => props.size === Size.Small || !props.size\n ? '4px 16px 0px'\n : props.size === Size.Medium\n ? '12px 16px 8px'\n : '16px 16px 12px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n }) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n if (focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Tab') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n e.shiftKey ? focusedNow-- : focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n const focusThis = focused === 0 && !haveTopItem() ? 1 : focused;\n if (focusThis !== focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen, focused]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n\n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {\n }} label={selectedFirst?.displayLabel ?? selectedFirst?.value}\n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem\n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n item={item}\n size={size}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef}\n scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\"/>\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => {\n if (customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n\n"],"file":"DropdownContent.cjs"}
|
|
@@ -11,7 +11,7 @@ import Button from '../Button/Button';
|
|
|
11
11
|
import { Size } from '../types';
|
|
12
12
|
import { ButtonDropdownContentStyling } from './CommonStyling';
|
|
13
13
|
import { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';
|
|
14
|
-
import { COLORS } from '../styles';
|
|
14
|
+
import { COLORS, scrollBarStyling } from '../styles';
|
|
15
15
|
import { Checkbox, RadioButton } from '../InputFields';
|
|
16
16
|
import { Z_INDEXES } from '../styles/z-indexes';
|
|
17
17
|
import MenuItem from '../MenuItem/MenuItem';
|
|
@@ -34,7 +34,7 @@ export var DDContainer = styled.div(_templateObject || (_templateObject = _tagge
|
|
|
34
34
|
return !props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px';
|
|
35
35
|
});
|
|
36
36
|
var ItemsContainer = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n > *:hover {\n z-index: ", ";\n }\n\n > *:active,\n > *.active {\n z-index: ", ";\n }\n\n > *:focus {\n z-index: ", ";\n }\n"])), Z_INDEXES.hover, Z_INDEXES.active, Z_INDEXES.focus);
|
|
37
|
-
var ListContainer = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n ", "\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ", " {\n padding-top: ", ";\n padding-bottom: ", ";\n\n word-break: break-word;\n }\n\n
|
|
37
|
+
var ListContainer = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n ", "\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ", " {\n padding-top: ", ";\n padding-bottom: ", ";\n\n word-break: break-word;\n }\n\n ", "\n"])), function (props) {
|
|
38
38
|
return props.scrollable ? 'overflow-y: scroll;' : '';
|
|
39
39
|
}, function (props) {
|
|
40
40
|
return props.scrollable ? 'margin-right: 6px;' : '';
|
|
@@ -46,7 +46,7 @@ var ListContainer = styled.div(_templateObject3 || (_templateObject3 = _taggedTe
|
|
|
46
46
|
return props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px';
|
|
47
47
|
}, function (props) {
|
|
48
48
|
return props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px';
|
|
49
|
-
},
|
|
49
|
+
}, scrollBarStyling(Size.Small));
|
|
50
50
|
var MenuContentContainer = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ", "\n ", "\n ", "\n padding: ", ";\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ", "\n ", "\n ", "\n padding: ", ";\n }\n"])), function (props) {
|
|
51
51
|
return props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500);
|
|
52
52
|
}, function (props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["React","styled","Button","Size","ButtonDropdownContentStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","Checkbox","RadioButton","Z_INDEXES","MenuItem","DDContainer","div","white","props","width","dropdown","isButton","alignLeft","neutral_100","size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","neutral_600","neutral_500","MenuContentContainer","Bold","Small","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","key","preventDefault","focusedNow","undefined","filtered","haveTopItem","i","disabled","shiftKey","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","ref","createRef","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","stopPropagation","getElements","number","customContent","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport {Size} from '../types';\nimport {ButtonDropdownContentStyling} from './CommonStyling';\nimport {\n ComponentLStyling,\n ComponentXLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle\n} from '../styles/typography';\nimport {COLORS} from '../styles';\nimport {Checkbox, RadioButton} from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{ size?: Size }>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n\n > *:active,\n > *.active {\n z-index: ${Z_INDEXES.active};\n }\n\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n\n word-break: break-word;\n }\n\n /* width */\n\n ::-webkit-scrollbar {\n width: 4px;\n cursor: pointer;\n }\n\n /* Track */\n\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{ size?: Size }>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' :\n props.size == Size.Medium ? '12px' :\n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{ size?: Size }>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{ size?: Size, scrollable?: boolean }>`\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.neutral_200};` : '')}\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\n\n padding: ${(props) => props.size === Size.Small || !props.size\n ? '4px 16px 0px'\n : props.size === Size.Medium\n ? '12px 16px 8px'\n : '16px 16px 12px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n }) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n if (focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Tab') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n e.shiftKey ? focusedNow-- : focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n const focusThis = focused === 0 && !haveTopItem() ? 1 : focused;\n if (focusThis !== focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen, focused]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n\n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {\n }} label={selectedFirst?.displayLabel ?? selectedFirst?.value}\n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem\n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n item={item}\n size={size}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef}\n scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\"/>\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => {\n if (customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["React","styled","Button","Size","ButtonDropdownContentStyling","ComponentLStyling","ComponentXLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","scrollBarStyling","Checkbox","RadioButton","Z_INDEXES","MenuItem","DDContainer","div","white","props","width","dropdown","isButton","alignLeft","neutral_100","size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","Small","MenuContentContainer","Bold","neutral_500","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","key","preventDefault","focusedNow","undefined","filtered","haveTopItem","i","disabled","shiftKey","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","ref","createRef","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","stopPropagation","getElements","number","customContent","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport {Size} from '../types';\nimport {ButtonDropdownContentStyling} from './CommonStyling';\nimport {\n ComponentLStyling,\n ComponentXLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle\n} from '../styles/typography';\nimport {COLORS, scrollBarStyling} from '../styles';\nimport {Checkbox, RadioButton} from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{ size?: Size }>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n\n > *:active,\n > *.active {\n z-index: ${Z_INDEXES.active};\n }\n\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n\n word-break: break-word;\n }\n\n ${scrollBarStyling(Size.Small)}\n`;\n\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{ size?: Size }>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' :\n props.size == Size.Medium ? '12px' :\n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{ size?: Size }>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{ size?: Size, scrollable?: boolean }>`\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.neutral_200};` : '')}\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\n\n padding: ${(props) => props.size === Size.Small || !props.size\n ? '4px 16px 0px'\n : props.size === Size.Medium\n ? '12px 16px 8px'\n : '16px 16px 12px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n }) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n if (focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Tab') {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n e.shiftKey ? focusedNow-- : focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n const focusThis = focused === 0 && !haveTopItem() ? 1 : focused;\n if (focusThis !== focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen, focused]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n\n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {\n }} label={selectedFirst?.displayLabel ?? selectedFirst?.value}\n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem\n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n item={item}\n size={size}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef}\n scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\"/>\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => {\n if (customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n\n"],"file":"DropdownContent.js"}
|
|
@@ -21,6 +21,8 @@ var _styles = require("../../styles");
|
|
|
21
21
|
|
|
22
22
|
var _MenuLink = _interopRequireDefault(require("./MenuLink"));
|
|
23
23
|
|
|
24
|
+
var _types = require("../../types");
|
|
25
|
+
|
|
24
26
|
var _Button = require("../../Button");
|
|
25
27
|
|
|
26
28
|
var _SystemIcons = require("../../icons/systemicons/SystemIcons");
|
|
@@ -39,7 +41,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
39
41
|
|
|
40
42
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
41
43
|
|
|
42
|
-
var Menu = _styledComponents.default.ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n list-style: none;\n margin: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n -webkit-animation: ", " 0.2s ease-in-out;\n animation: ", " 0.2s ease-in-out;\n position: absolute;\n border-radius: 4px;\n z-index: ", ";\n height: 100%;\n width: 320px;\n padding-inline-start: 0;\n overflow-y: scroll;\n ", " {\n min-width: 360px;\n }\n\n .open & {\n display: flex;\n flex-direction: column;\n }\n\n .signOutButton {\n height: 40px !important;\n width: 288px !important;\n\n ", " {\n width: 328px !important;\n }\n }\n\n ", ";\n"])), _styles.COLORS.white, _CommonStyles.flowDown, _CommonStyles.flowDown, _zIndexes.Z_INDEXES.fixed_menu, _styles.BREAKPOINTS.SMALL, _styles.BREAKPOINTS.SMALL, _styles.scrollBarStyling);
|
|
44
|
+
var Menu = _styledComponents.default.ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n list-style: none;\n margin: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n -webkit-animation: ", " 0.2s ease-in-out;\n animation: ", " 0.2s ease-in-out;\n position: absolute;\n border-radius: 4px;\n z-index: ", ";\n height: 100%;\n width: 320px;\n padding-inline-start: 0;\n overflow-y: scroll;\n ", " {\n min-width: 360px;\n }\n\n .open & {\n display: flex;\n flex-direction: column;\n }\n\n .signOutButton {\n height: 40px !important;\n width: 288px !important;\n\n ", " {\n width: 328px !important;\n }\n }\n\n ", ";\n"])), _styles.COLORS.white, _CommonStyles.flowDown, _CommonStyles.flowDown, _zIndexes.Z_INDEXES.fixed_menu, _styles.BREAKPOINTS.SMALL, _styles.BREAKPOINTS.SMALL, (0, _styles.scrollBarStyling)(_types.Size.Small));
|
|
43
45
|
|
|
44
46
|
var MenuSection = _styledComponents.default.li(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n padding: 8px 0;\n position: relative;\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n"])));
|
|
45
47
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/GlobalNavigationBar/UserMenu/MobileUserMenu.tsx"],"names":["Menu","styled","ul","COLORS","white","flowDown","Z_INDEXES","fixed_menu","BREAKPOINTS","SMALL","scrollBarStyling","MenuSection","li","MenuSectionList","UserMenuSectionListStyling","Top","div","neutral_600","ComponentTextStyle","Regular","LabelLine","span","neutral_20","StyledMenulink","MenuLink","MobileUserMenu","accountMenuHeader","firstName","lastName","email","organizationName","clickMenuAction","accountSection","organizationSection","supportSection","signOut","signOutLabel","React","useEffect","handleKeyPress","e","keyCode","document","addEventListener","removeEventListener","length","map","element","to","label","isExternal","display","margin","width","preventDefault"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {BREAKPOINTS, COLORS, ComponentTextStyle, scrollBarStyling} from '../../styles';\n\nimport MenuLink from './MenuLink';\nimport {UserMenuItem} from '../../types';\nimport {Button, IconButton} from '../../Button';\nimport {ArrowLineLeft, Close} from '../../icons/systemicons/SystemIcons';\nimport {flowDown, Right, UserMenuSectionListStyling} from '../mobile/CommonStyles';\nimport {ComponentSStyling} from '../../styles/typography';\nimport {Z_INDEXES} from '../../styles/z-indexes';\n\nconst Menu = styled.ul`\n list-style: none;\n margin: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n -webkit-animation: ${flowDown} 0.2s ease-in-out;\n animation: ${flowDown} 0.2s ease-in-out;\n position: absolute;\n border-radius: 4px;\n z-index: ${Z_INDEXES.fixed_menu};\n height: 100%;\n width: 320px;\n padding-inline-start: 0;\n overflow-y: scroll;\n ${BREAKPOINTS.SMALL} {\n min-width: 360px;\n }\n\n .open & {\n display: flex;\n flex-direction: column;\n }\n\n .signOutButton {\n height: 40px !important;\n width: 288px !important;\n\n ${BREAKPOINTS.SMALL} {\n width: 328px !important;\n }\n }\n\n ${scrollBarStyling};\n`;\n\nconst MenuSection = styled.li`\n padding: 8px 0;\n position: relative;\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n`;\n\nconst MenuSectionList = styled.ul`\n list-style: none;\n margin: 0;\n overflow-y: unset !important;\n padding-inline-start: 0;\n ${UserMenuSectionListStyling};\n`;\n\nconst Top = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 22px 12px 0 12px;\n color: ${COLORS.neutral_600};\n\n h3 {\n margin-block-start: 0 !important;\n margin-block-end: 0 !important;\n margin-inline-start: 0;\n margin-inline-end: 0;\n margin-left: 24px;\n\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n }\n`;\n\nconst LabelLine = styled.span`\n height: 32px;\n background-color: ${COLORS.neutral_20};\n padding-left: 24px;\n display: flex;\n line-height: 32px;\n`;\n\nconst StyledMenulink = styled(MenuLink)`\n width: 100%;\n height: 48px;\n margin: 0;\n \n & a {\n height: 100%;\n }\n`;\n\ninterface Props {\n accountMenuHeader: string;\n firstName: string;\n lastName: string;\n email: string;\n organizationName: string;\n clickMenuAction: () => void;\n accountSection?: UserMenuItem[];\n organizationSection?: UserMenuItem[];\n supportSection?: UserMenuItem[];\n signOut?: (e: any) => void;\n signOutLabel?: string;\n}\n\nconst MobileUserMenu = ({\n accountMenuHeader,\n firstName,\n lastName,\n email,\n organizationName,\n clickMenuAction,\n accountSection,\n organizationSection,\n supportSection,\n signOut,\n signOutLabel,\n}: Props) => {\n React.useEffect(() => {\n function handleKeyPress(e: any) {\n if (e.keyCode === 27) {\n clickMenuAction();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [clickMenuAction]);\n\n return (\n <Menu onClick={() => {}} role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <Top key=\"MobileUserMenuTopSection\">\n <IconButton variant=\"secondary\" shape=\"circular\" action={clickMenuAction} isInMobileMenu={true}>\n <ArrowLineLeft size=\"24px\" color={COLORS.neutral_600} />\n </IconButton>\n <h3>{accountMenuHeader}</h3>\n <Right>\n <IconButton variant=\"secondary\" shape=\"circular\" action={clickMenuAction} isInMobileMenu={true}>\n <Close size=\"24px\" />\n </IconButton>\n </Right>\n </Top>\n {accountSection && accountSection?.length > 0 && (\n <MenuSection key=\"MobileAccountSection\">\n <LabelLine data-hj-suppress>{`${firstName} ${lastName}`}</LabelLine>\n <MenuSectionList>\n {accountSection?.map((element) => (\n <StyledMenulink key={element?.to} to={element?.to} menuText={element?.label} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n {organizationSection && organizationSection?.length > 0 && (\n <MenuSection key=\"MObileOrganizationSection\">\n <LabelLine>{organizationName || ''}</LabelLine>\n <MenuSectionList>\n {organizationSection?.map((element) => (\n <StyledMenulink key={element?.to} to={element?.to} menuText={element?.label} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n\n {supportSection && supportSection?.length > 0 && (\n <MenuSection key=\"MobileSupportSection\">\n <LabelLine>{''}</LabelLine>\n <MenuSectionList>\n {supportSection?.map((element) => (\n <StyledMenulink key={element?.to} isExternal={element.isExternal} to={element?.to} menuText={element?.label} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n {signOut && (\n <div key=\"SignoutButton\" style={{ display: 'flex', margin: 'auto 0 12px 0' }}>\n <Button\n style={{ width: '90%', margin: '0 auto' }}\n variant=\"secondary\"\n onClick={(e) => {\n e.preventDefault();\n signOut(e);\n }}>\n {signOutLabel}\n </Button>\n </div>\n )}\n </Menu>\n );\n};\n\nexport default MobileUserMenu;\n"],"file":"MobileUserMenu.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../../src/GlobalNavigationBar/UserMenu/MobileUserMenu.tsx"],"names":["Menu","styled","ul","COLORS","white","flowDown","Z_INDEXES","fixed_menu","BREAKPOINTS","SMALL","Size","Small","MenuSection","li","MenuSectionList","UserMenuSectionListStyling","Top","div","neutral_600","ComponentTextStyle","Regular","LabelLine","span","neutral_20","StyledMenulink","MenuLink","MobileUserMenu","accountMenuHeader","firstName","lastName","email","organizationName","clickMenuAction","accountSection","organizationSection","supportSection","signOut","signOutLabel","React","useEffect","handleKeyPress","e","keyCode","document","addEventListener","removeEventListener","length","map","element","to","label","isExternal","display","margin","width","preventDefault"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,IAAI,GAAGC,0BAAOC,EAAV,0qBAGYC,eAAOC,KAHnB,EAMaC,sBANb,EAOKA,sBAPL,EAUGC,oBAAUC,UAVb,EAeNC,oBAAYC,KAfN,EA4BJD,oBAAYC,KA5BR,EAiCN,8BAAiBC,YAAKC,KAAtB,CAjCM,CAAV;;AAoCA,IAAMC,WAAW,GAAGX,0BAAOY,EAAV,qOAAjB;;AAWA,IAAMC,eAAe,GAAGb,0BAAOC,EAAV,iMAKjBa,wCALiB,CAArB;;AAQA,IAAMC,GAAG,GAAGf,0BAAOgB,GAAV,+XAKEd,eAAOe,WALT,EAcH,mCAAkBC,2BAAmBC,OAArC,EAA8C,SAA9C,CAdG,CAAT;;AAkBA,IAAMC,SAAS,GAAGpB,0BAAOqB,IAAV,mMAEOnB,eAAOoB,UAFd,CAAf;;AAQA,IAAMC,cAAc,GAAG,+BAAOC,iBAAP,CAAH,2KAApB;;AAwBA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,OAYV;AAAA,MAXXC,iBAWW,QAXXA,iBAWW;AAAA,MAVXC,SAUW,QAVXA,SAUW;AAAA,MATXC,QASW,QATXA,QASW;AAAA,MARXC,KAQW,QARXA,KAQW;AAAA,MAPXC,gBAOW,QAPXA,gBAOW;AAAA,MANXC,eAMW,QANXA,eAMW;AAAA,MALXC,cAKW,QALXA,cAKW;AAAA,MAJXC,mBAIW,QAJXA,mBAIW;AAAA,MAHXC,cAGW,QAHXA,cAGW;AAAA,MAFXC,OAEW,QAFXA,OAEW;AAAA,MADXC,YACW,QADXA,YACW;AACXC,EAAAA,KAAK,CAACC,SAAN,CAAgB,YAAM;AACpB,aAASC,cAAT,CAAwBC,CAAxB,EAAgC;AAC9B,UAAIA,CAAC,CAACC,OAAF,KAAc,EAAlB,EAAsB;AACpBV,QAAAA,eAAe;AAChB;AACF;;AAEDW,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCJ,cAArC,EAAqD,KAArD;AACA,WAAO,YAAM;AACXG,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCL,cAAxC,EAAwD,KAAxD;AACD,KAFD;AAGD,GAXD,EAWG,CAACR,eAAD,CAXH;AAaA,sBACE,sBAAC,IAAD;AAAM,IAAA,OAAO,EAAE,mBAAM,CAAE,CAAvB;AAAyB,IAAA,IAAI,EAAC,MAA9B;AAAqC,uBAAgB,gBAArD;AAAA,4BACE,sBAAC,GAAD;AAAA,8BACE,qBAAC,kBAAD;AAAY,QAAA,OAAO,EAAC,WAApB;AAAgC,QAAA,KAAK,EAAC,UAAtC;AAAiD,QAAA,MAAM,EAAEA,eAAzD;AAA0E,QAAA,cAAc,EAAE,IAA1F;AAAA,+BACE,qBAAC,0BAAD;AAAe,UAAA,IAAI,EAAC,MAApB;AAA2B,UAAA,KAAK,EAAE7B,eAAOe;AAAzC;AADF,QADF,eAIE;AAAA,kBAAKS;AAAL,QAJF,eAKE,qBAAC,mBAAD;AAAA,+BACE,qBAAC,kBAAD;AAAY,UAAA,OAAO,EAAC,WAApB;AAAgC,UAAA,KAAK,EAAC,UAAtC;AAAiD,UAAA,MAAM,EAAEK,eAAzD;AAA0E,UAAA,cAAc,EAAE,IAA1F;AAAA,iCACE,qBAAC,kBAAD;AAAO,YAAA,IAAI,EAAC;AAAZ;AADF;AADF,QALF;AAAA,OAAS,0BAAT,CADF,EAYGC,cAAc,IAAI,CAAAA,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEa,MAAhB,IAAyB,CAA3C,iBACC,sBAAC,WAAD;AAAA,8BACE,qBAAC,SAAD;AAAW,gCAAX;AAAA,4BAAgClB,SAAhC,cAA6CC,QAA7C;AAAA,QADF,eAEE,qBAAC,eAAD;AAAA,kBACGI,cADH,aACGA,cADH,uBACGA,cAAc,CAAEc,GAAhB,CAAoB,UAACC,OAAD;AAAA,8BACnB,qBAAC,cAAD;AAAkC,YAAA,EAAE,EAAEA,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEC,EAA/C;AAAmD,YAAA,QAAQ,EAAED,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEE;AAAtE,aAAqBF,OAArB,aAAqBA,OAArB,uBAAqBA,OAAO,CAAEC,EAA9B,CADmB;AAAA,SAApB;AADH,QAFF;AAAA,OAAiB,sBAAjB,CAbJ,EAsBGf,mBAAmB,IAAI,CAAAA,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEY,MAArB,IAA8B,CAArD,iBACC,sBAAC,WAAD;AAAA,8BACE,qBAAC,SAAD;AAAA,kBAAYf,gBAAgB,IAAI;AAAhC,QADF,eAEE,qBAAC,eAAD;AAAA,kBACGG,mBADH,aACGA,mBADH,uBACGA,mBAAmB,CAAEa,GAArB,CAAyB,UAACC,OAAD;AAAA,8BACxB,qBAAC,cAAD;AAAkC,YAAA,EAAE,EAAEA,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEC,EAA/C;AAAmD,YAAA,QAAQ,EAAED,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEE;AAAtE,aAAqBF,OAArB,aAAqBA,OAArB,uBAAqBA,OAAO,CAAEC,EAA9B,CADwB;AAAA,SAAzB;AADH,QAFF;AAAA,OAAiB,2BAAjB,CAvBJ,EAiCGd,cAAc,IAAI,CAAAA,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEW,MAAhB,IAAyB,CAA3C,iBACC,sBAAC,WAAD;AAAA,8BACE,qBAAC,SAAD;AAAA,kBAAY;AAAZ,QADF,eAEE,qBAAC,eAAD;AAAA,kBACGX,cADH,aACGA,cADH,uBACGA,cAAc,CAAEY,GAAhB,CAAoB,UAACC,OAAD;AAAA,8BACnB,qBAAC,cAAD;AAAkC,YAAA,UAAU,EAAEA,OAAO,CAACG,UAAtD;AAAkE,YAAA,EAAE,EAAEH,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEC,EAA/E;AAAmF,YAAA,QAAQ,EAAED,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEE;AAAtG,aAAqBF,OAArB,aAAqBA,OAArB,uBAAqBA,OAAO,CAAEC,EAA9B,CADmB;AAAA,SAApB;AADH,QAFF;AAAA,OAAiB,sBAAjB,CAlCJ,EA2CGb,OAAO,iBACN;AAAyB,MAAA,KAAK,EAAE;AAAEgB,QAAAA,OAAO,EAAE,MAAX;AAAmBC,QAAAA,MAAM,EAAE;AAA3B,OAAhC;AAAA,6BACE,qBAAC,cAAD;AACE,QAAA,KAAK,EAAE;AAAEC,UAAAA,KAAK,EAAE,KAAT;AAAgBD,UAAAA,MAAM,EAAE;AAAxB,SADT;AAEE,QAAA,OAAO,EAAC,WAFV;AAGE,QAAA,OAAO,EAAE,iBAACZ,CAAD,EAAO;AACdA,UAAAA,CAAC,CAACc,cAAF;AACAnB,UAAAA,OAAO,CAACK,CAAD,CAAP;AACD,SANH;AAAA,kBAOGJ;AAPH;AADF,OAAS,eAAT,CA5CJ;AAAA,IADF;AA2DD,CArFD;;;AAbEV,EAAAA,iB;AACAC,EAAAA,S;AACAC,EAAAA,Q;AACAC,EAAAA,K;AACAC,EAAAA,gB;AACAC,EAAAA,e;AACAC,EAAAA,c;AACAC,EAAAA,mB;AACAC,EAAAA,c;AACAC,EAAAA,O;AACAC,EAAAA,Y;;eA0FaX,c","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {BREAKPOINTS, COLORS, ComponentTextStyle, scrollBarStyling} from '../../styles';\n\nimport MenuLink from './MenuLink';\nimport {Size, UserMenuItem} from '../../types';\nimport {Button, IconButton} from '../../Button';\nimport {ArrowLineLeft, Close} from '../../icons/systemicons/SystemIcons';\nimport {flowDown, Right, UserMenuSectionListStyling} from '../mobile/CommonStyles';\nimport {ComponentSStyling} from '../../styles/typography';\nimport {Z_INDEXES} from '../../styles/z-indexes';\n\nconst Menu = styled.ul`\n list-style: none;\n margin: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n -webkit-animation: ${flowDown} 0.2s ease-in-out;\n animation: ${flowDown} 0.2s ease-in-out;\n position: absolute;\n border-radius: 4px;\n z-index: ${Z_INDEXES.fixed_menu};\n height: 100%;\n width: 320px;\n padding-inline-start: 0;\n overflow-y: scroll;\n ${BREAKPOINTS.SMALL} {\n min-width: 360px;\n }\n\n .open & {\n display: flex;\n flex-direction: column;\n }\n\n .signOutButton {\n height: 40px !important;\n width: 288px !important;\n\n ${BREAKPOINTS.SMALL} {\n width: 328px !important;\n }\n }\n\n ${scrollBarStyling(Size.Small)};\n`;\n\nconst MenuSection = styled.li`\n padding: 8px 0;\n position: relative;\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n`;\n\nconst MenuSectionList = styled.ul`\n list-style: none;\n margin: 0;\n overflow-y: unset !important;\n padding-inline-start: 0;\n ${UserMenuSectionListStyling};\n`;\n\nconst Top = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 22px 12px 0 12px;\n color: ${COLORS.neutral_600};\n\n h3 {\n margin-block-start: 0 !important;\n margin-block-end: 0 !important;\n margin-inline-start: 0;\n margin-inline-end: 0;\n margin-left: 24px;\n\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n }\n`;\n\nconst LabelLine = styled.span`\n height: 32px;\n background-color: ${COLORS.neutral_20};\n padding-left: 24px;\n display: flex;\n line-height: 32px;\n`;\n\nconst StyledMenulink = styled(MenuLink)`\n width: 100%;\n height: 48px;\n margin: 0;\n \n & a {\n height: 100%;\n }\n`;\n\ninterface Props {\n accountMenuHeader: string;\n firstName: string;\n lastName: string;\n email: string;\n organizationName: string;\n clickMenuAction: () => void;\n accountSection?: UserMenuItem[];\n organizationSection?: UserMenuItem[];\n supportSection?: UserMenuItem[];\n signOut?: (e: any) => void;\n signOutLabel?: string;\n}\n\nconst MobileUserMenu = ({\n accountMenuHeader,\n firstName,\n lastName,\n email,\n organizationName,\n clickMenuAction,\n accountSection,\n organizationSection,\n supportSection,\n signOut,\n signOutLabel,\n}: Props) => {\n React.useEffect(() => {\n function handleKeyPress(e: any) {\n if (e.keyCode === 27) {\n clickMenuAction();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [clickMenuAction]);\n\n return (\n <Menu onClick={() => {}} role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <Top key=\"MobileUserMenuTopSection\">\n <IconButton variant=\"secondary\" shape=\"circular\" action={clickMenuAction} isInMobileMenu={true}>\n <ArrowLineLeft size=\"24px\" color={COLORS.neutral_600} />\n </IconButton>\n <h3>{accountMenuHeader}</h3>\n <Right>\n <IconButton variant=\"secondary\" shape=\"circular\" action={clickMenuAction} isInMobileMenu={true}>\n <Close size=\"24px\" />\n </IconButton>\n </Right>\n </Top>\n {accountSection && accountSection?.length > 0 && (\n <MenuSection key=\"MobileAccountSection\">\n <LabelLine data-hj-suppress>{`${firstName} ${lastName}`}</LabelLine>\n <MenuSectionList>\n {accountSection?.map((element) => (\n <StyledMenulink key={element?.to} to={element?.to} menuText={element?.label} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n {organizationSection && organizationSection?.length > 0 && (\n <MenuSection key=\"MObileOrganizationSection\">\n <LabelLine>{organizationName || ''}</LabelLine>\n <MenuSectionList>\n {organizationSection?.map((element) => (\n <StyledMenulink key={element?.to} to={element?.to} menuText={element?.label} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n\n {supportSection && supportSection?.length > 0 && (\n <MenuSection key=\"MobileSupportSection\">\n <LabelLine>{''}</LabelLine>\n <MenuSectionList>\n {supportSection?.map((element) => (\n <StyledMenulink key={element?.to} isExternal={element.isExternal} to={element?.to} menuText={element?.label} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n {signOut && (\n <div key=\"SignoutButton\" style={{ display: 'flex', margin: 'auto 0 12px 0' }}>\n <Button\n style={{ width: '90%', margin: '0 auto' }}\n variant=\"secondary\"\n onClick={(e) => {\n e.preventDefault();\n signOut(e);\n }}>\n {signOutLabel}\n </Button>\n </div>\n )}\n </Menu>\n );\n};\n\nexport default MobileUserMenu;\n"],"file":"MobileUserMenu.cjs"}
|
|
@@ -7,6 +7,7 @@ import * as React from 'react';
|
|
|
7
7
|
import styled from 'styled-components';
|
|
8
8
|
import { BREAKPOINTS, COLORS, ComponentTextStyle, scrollBarStyling } from '../../styles';
|
|
9
9
|
import MenuLink from './MenuLink';
|
|
10
|
+
import { Size } from '../../types';
|
|
10
11
|
import { Button, IconButton } from '../../Button';
|
|
11
12
|
import { ArrowLineLeft, Close } from '../../icons/systemicons/SystemIcons';
|
|
12
13
|
import { flowDown, Right, UserMenuSectionListStyling } from '../mobile/CommonStyles';
|
|
@@ -14,7 +15,7 @@ import { ComponentSStyling } from '../../styles/typography';
|
|
|
14
15
|
import { Z_INDEXES } from '../../styles/z-indexes';
|
|
15
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
-
var Menu = styled.ul(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n list-style: none;\n margin: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n -webkit-animation: ", " 0.2s ease-in-out;\n animation: ", " 0.2s ease-in-out;\n position: absolute;\n border-radius: 4px;\n z-index: ", ";\n height: 100%;\n width: 320px;\n padding-inline-start: 0;\n overflow-y: scroll;\n ", " {\n min-width: 360px;\n }\n\n .open & {\n display: flex;\n flex-direction: column;\n }\n\n .signOutButton {\n height: 40px !important;\n width: 288px !important;\n\n ", " {\n width: 328px !important;\n }\n }\n\n ", ";\n"])), COLORS.white, flowDown, flowDown, Z_INDEXES.fixed_menu, BREAKPOINTS.SMALL, BREAKPOINTS.SMALL, scrollBarStyling);
|
|
18
|
+
var Menu = styled.ul(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n list-style: none;\n margin: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n -webkit-animation: ", " 0.2s ease-in-out;\n animation: ", " 0.2s ease-in-out;\n position: absolute;\n border-radius: 4px;\n z-index: ", ";\n height: 100%;\n width: 320px;\n padding-inline-start: 0;\n overflow-y: scroll;\n ", " {\n min-width: 360px;\n }\n\n .open & {\n display: flex;\n flex-direction: column;\n }\n\n .signOutButton {\n height: 40px !important;\n width: 288px !important;\n\n ", " {\n width: 328px !important;\n }\n }\n\n ", ";\n"])), COLORS.white, flowDown, flowDown, Z_INDEXES.fixed_menu, BREAKPOINTS.SMALL, BREAKPOINTS.SMALL, scrollBarStyling(Size.Small));
|
|
18
19
|
var MenuSection = styled.li(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding: 8px 0;\n position: relative;\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n"])));
|
|
19
20
|
var MenuSectionList = styled.ul(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n list-style: none;\n margin: 0;\n overflow-y: unset !important;\n padding-inline-start: 0;\n ", ";\n"])), UserMenuSectionListStyling);
|
|
20
21
|
var Top = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 22px 12px 0 12px;\n color: ", ";\n\n h3 {\n margin-block-start: 0 !important;\n margin-block-end: 0 !important;\n margin-inline-start: 0;\n margin-inline-end: 0;\n margin-left: 24px;\n\n ", "\n }\n"])), COLORS.neutral_600, ComponentSStyling(ComponentTextStyle.Regular, 'inherit'));
|