@laerdal/life-react-components 1.11.0-dev.9 → 2.0.0-dev.1.full

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/dist/Accordion/AccordionItem.cjs +12 -7
  2. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  3. package/dist/Accordion/AccordionItem.js +12 -7
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/ContentAccordion.cjs +3 -1
  6. package/dist/Accordion/ContentAccordion.cjs.map +1 -1
  7. package/dist/Accordion/ContentAccordion.js +3 -1
  8. package/dist/Accordion/ContentAccordion.js.map +1 -1
  9. package/dist/Accordion/styles.cjs +1 -1
  10. package/dist/Accordion/styles.cjs.map +1 -1
  11. package/dist/Accordion/styles.js +1 -1
  12. package/dist/Accordion/styles.js.map +1 -1
  13. package/dist/AuthPage/AuthPage.d.ts +0 -1
  14. package/dist/Banners/Banner.cjs +9 -4
  15. package/dist/Banners/Banner.cjs.map +1 -1
  16. package/dist/Banners/Banner.js +8 -4
  17. package/dist/Banners/Banner.js.map +1 -1
  18. package/dist/Breadcrumb/Breadcrumb.cjs +12 -0
  19. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  20. package/dist/Breadcrumb/Breadcrumb.js +12 -0
  21. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  22. package/dist/Button/DualFunctionButton.cjs +27 -12
  23. package/dist/Button/DualFunctionButton.cjs.map +1 -1
  24. package/dist/Button/DualFunctionButton.js +26 -12
  25. package/dist/Button/DualFunctionButton.js.map +1 -1
  26. package/dist/Button/Iconbutton.cjs +2 -2
  27. package/dist/Button/Iconbutton.cjs.map +1 -1
  28. package/dist/Button/Iconbutton.js +2 -2
  29. package/dist/Button/Iconbutton.js.map +1 -1
  30. package/dist/Card/VerticalCard/Card.cjs +2 -2
  31. package/dist/Card/VerticalCard/Card.cjs.map +1 -1
  32. package/dist/Card/VerticalCard/Card.js +2 -2
  33. package/dist/Card/VerticalCard/Card.js.map +1 -1
  34. package/dist/ChipsInput/ChipDropdownInput.cjs +33 -22
  35. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  36. package/dist/ChipsInput/ChipDropdownInput.js +33 -22
  37. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  38. package/dist/Dropdown/BasicDropdown.cjs +26 -12
  39. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  40. package/dist/Dropdown/BasicDropdown.js +26 -12
  41. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  42. package/dist/Dropdown/DropdownButton.cjs +27 -11
  43. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  44. package/dist/Dropdown/DropdownButton.js +27 -11
  45. package/dist/Dropdown/DropdownButton.js.map +1 -1
  46. package/dist/Dropdown/DropdownButtonTypes.cjs.map +1 -1
  47. package/dist/Dropdown/DropdownButtonTypes.d.ts +1 -1
  48. package/dist/Dropdown/DropdownButtonTypes.js.map +1 -1
  49. package/dist/Dropdown/DropdownContent.cjs +44 -6
  50. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  51. package/dist/Dropdown/DropdownContent.d.ts +2 -0
  52. package/dist/Dropdown/DropdownContent.js +44 -6
  53. package/dist/Dropdown/DropdownContent.js.map +1 -1
  54. package/dist/Dropdown/DropdownFilter.cjs +23 -9
  55. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  56. package/dist/Dropdown/DropdownFilter.js +23 -9
  57. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  58. package/dist/Footer/Components/FooterBottomLinks.d.ts +0 -1
  59. package/dist/Footer/Components/FooterDropdownLinks.d.ts +0 -1
  60. package/dist/Footer/Components/FooterNavSection.cjs +7 -2
  61. package/dist/Footer/Components/FooterNavSection.cjs.map +1 -1
  62. package/dist/Footer/Components/FooterNavSection.d.ts +0 -1
  63. package/dist/Footer/Components/FooterNavSection.js +6 -2
  64. package/dist/Footer/Components/FooterNavSection.js.map +1 -1
  65. package/dist/Footer/Components/FooterNewsletterAndSocialSection.d.ts +0 -1
  66. package/dist/Footer/Components/FooterTop.d.ts +0 -1
  67. package/dist/Footer/Footer.d.ts +0 -1
  68. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +3 -1
  69. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
  70. package/dist/GlobalNavigationBar/GlobalNavigationBar.js +2 -1
  71. package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  72. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.d.ts +0 -1
  73. package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +0 -1
  74. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +24 -2
  75. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
  76. package/dist/GlobalNavigationBar/mobile/CommonStyles.d.ts +5 -0
  77. package/dist/GlobalNavigationBar/mobile/CommonStyles.js +8 -2
  78. package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  79. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs +53 -0
  80. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs.map +1 -0
  81. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.d.ts +6 -0
  82. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js +34 -0
  83. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js.map +1 -0
  84. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +3 -5
  85. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
  86. package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +0 -1
  87. package/dist/GlobalNavigationBar/mobile/MobileMenu.js +2 -4
  88. package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
  89. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +30 -61
  90. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
  91. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +30 -57
  92. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
  93. package/dist/GlobalNavigationBar/types.cjs.map +1 -1
  94. package/dist/GlobalNavigationBar/types.d.ts +3 -1
  95. package/dist/GlobalNavigationBar/types.js.map +1 -1
  96. package/dist/InputFields/Checkbox.cjs +1 -0
  97. package/dist/InputFields/Checkbox.cjs.map +1 -1
  98. package/dist/InputFields/Checkbox.js +1 -0
  99. package/dist/InputFields/Checkbox.js.map +1 -1
  100. package/dist/InputFields/DatepickerField.cjs +12 -4
  101. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  102. package/dist/InputFields/DatepickerField.js +6 -4
  103. package/dist/InputFields/DatepickerField.js.map +1 -1
  104. package/dist/InputFields/DatepickerFieldHeader.d.ts +0 -1
  105. package/dist/InputFields/Label.cjs +16 -14
  106. package/dist/InputFields/Label.cjs.map +1 -1
  107. package/dist/InputFields/Label.d.ts +1 -0
  108. package/dist/InputFields/Label.js +15 -13
  109. package/dist/InputFields/Label.js.map +1 -1
  110. package/dist/InputFields/NumberField.cjs +1 -1
  111. package/dist/InputFields/NumberField.cjs.map +1 -1
  112. package/dist/InputFields/NumberField.js +1 -1
  113. package/dist/InputFields/NumberField.js.map +1 -1
  114. package/dist/InputFields/QuickSearch.cjs +1 -1
  115. package/dist/InputFields/QuickSearch.cjs.map +1 -1
  116. package/dist/InputFields/QuickSearch.js +1 -1
  117. package/dist/InputFields/QuickSearch.js.map +1 -1
  118. package/dist/InputFields/ResponsiveComponentWrapper.cjs +3 -3
  119. package/dist/InputFields/ResponsiveComponentWrapper.cjs.map +1 -1
  120. package/dist/InputFields/ResponsiveComponentWrapper.js +3 -3
  121. package/dist/InputFields/ResponsiveComponentWrapper.js.map +1 -1
  122. package/dist/InputFields/SearchBar.cjs +1 -0
  123. package/dist/InputFields/SearchBar.cjs.map +1 -1
  124. package/dist/InputFields/SearchBar.js +1 -0
  125. package/dist/InputFields/SearchBar.js.map +1 -1
  126. package/dist/InputFields/Textarea.cjs.map +1 -1
  127. package/dist/InputFields/Textarea.d.ts +1 -1
  128. package/dist/InputFields/Textarea.js.map +1 -1
  129. package/dist/InputFields/types.cjs.map +1 -1
  130. package/dist/InputFields/types.d.ts +1 -1
  131. package/dist/InputFields/types.js.map +1 -1
  132. package/dist/LoadingIndicator/LoadingIndicator.d.ts +0 -1
  133. package/dist/MiniProductCard/MiniProductCard.d.ts +0 -1
  134. package/dist/Modals/ModalContent.cjs +2 -1
  135. package/dist/Modals/ModalContent.cjs.map +1 -1
  136. package/dist/Modals/ModalContent.d.ts +1 -0
  137. package/dist/Modals/ModalContent.js +2 -1
  138. package/dist/Modals/ModalContent.js.map +1 -1
  139. package/dist/Modals/ModalDialog.cjs +1 -0
  140. package/dist/Modals/ModalDialog.cjs.map +1 -1
  141. package/dist/Modals/ModalDialog.d.ts +1 -0
  142. package/dist/Modals/ModalDialog.js +1 -0
  143. package/dist/Modals/ModalDialog.js.map +1 -1
  144. package/dist/NavItem/NavItem.cjs +22 -1
  145. package/dist/NavItem/NavItem.cjs.map +1 -1
  146. package/dist/NavItem/NavItem.d.ts +7 -1
  147. package/dist/NavItem/NavItem.js +18 -1
  148. package/dist/NavItem/NavItem.js.map +1 -1
  149. package/dist/NavItem/index.cjs.map +1 -1
  150. package/dist/NavItem/index.d.ts +1 -0
  151. package/dist/NavItem/index.js.map +1 -1
  152. package/dist/Paginator/Paginator.d.ts +0 -1
  153. package/dist/QuizButton/QuizButton.cjs +3 -1
  154. package/dist/QuizButton/QuizButton.cjs.map +1 -1
  155. package/dist/QuizButton/QuizButton.js +3 -1
  156. package/dist/QuizButton/QuizButton.js.map +1 -1
  157. package/dist/SideMenu/SideMenuBody.d.ts +0 -1
  158. package/dist/SideMenu/SideMenuFooter.d.ts +0 -1
  159. package/dist/SideMenu/SideMenuHeader.d.ts +0 -1
  160. package/dist/SideMenu/types.d.ts +0 -1
  161. package/dist/SkipToContent/SkipToContent.cjs +5 -0
  162. package/dist/SkipToContent/SkipToContent.cjs.map +1 -1
  163. package/dist/SkipToContent/SkipToContent.d.ts +3 -1
  164. package/dist/SkipToContent/SkipToContent.js +4 -0
  165. package/dist/SkipToContent/SkipToContent.js.map +1 -1
  166. package/dist/Switcher/MobileCustomMenuContent.cjs +56 -0
  167. package/dist/Switcher/MobileCustomMenuContent.cjs.map +1 -0
  168. package/dist/Switcher/MobileCustomMenuContent.d.ts +8 -0
  169. package/dist/Switcher/MobileCustomMenuContent.js +39 -0
  170. package/dist/Switcher/MobileCustomMenuContent.js.map +1 -0
  171. package/dist/Switcher/MobileSwitcherMenu.cjs +17 -4
  172. package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
  173. package/dist/Switcher/MobileSwitcherMenu.d.ts +5 -3
  174. package/dist/Switcher/MobileSwitcherMenu.js +16 -4
  175. package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
  176. package/dist/Switcher/SwitcherMenuItem.d.ts +0 -1
  177. package/dist/Table/Table.cjs +9 -6
  178. package/dist/Table/Table.cjs.map +1 -1
  179. package/dist/Table/Table.js +9 -6
  180. package/dist/Table/Table.js.map +1 -1
  181. package/dist/Table/TableBody.cjs +6 -5
  182. package/dist/Table/TableBody.cjs.map +1 -1
  183. package/dist/Table/TableBody.d.ts +1 -3
  184. package/dist/Table/TableBody.js +6 -5
  185. package/dist/Table/TableBody.js.map +1 -1
  186. package/dist/Table/TableStyles.cjs +1 -1
  187. package/dist/Table/TableStyles.cjs.map +1 -1
  188. package/dist/Table/TableStyles.js +1 -1
  189. package/dist/Table/TableStyles.js.map +1 -1
  190. package/dist/Table/TableTypes.cjs.map +1 -1
  191. package/dist/Table/TableTypes.d.ts +5 -1
  192. package/dist/Table/TableTypes.js.map +1 -1
  193. package/dist/Table/index.cjs.map +1 -1
  194. package/dist/Table/index.d.ts +1 -1
  195. package/dist/Table/index.js.map +1 -1
  196. package/dist/Tabs/TabLink.cjs +13 -16
  197. package/dist/Tabs/TabLink.cjs.map +1 -1
  198. package/dist/Tabs/TabLink.d.ts +1 -1
  199. package/dist/Tabs/TabLink.js +14 -16
  200. package/dist/Tabs/TabLink.js.map +1 -1
  201. package/dist/Tabs/VerticalTabs.cjs +1 -0
  202. package/dist/Tabs/VerticalTabs.cjs.map +1 -1
  203. package/dist/Tabs/VerticalTabs.d.ts +1 -2
  204. package/dist/Tabs/VerticalTabs.js +1 -0
  205. package/dist/Tabs/VerticalTabs.js.map +1 -1
  206. package/dist/Tile/TileBody.cjs.map +1 -1
  207. package/dist/Tile/TileBody.d.ts +1 -0
  208. package/dist/Tile/TileBody.js.map +1 -1
  209. package/dist/Tile/TileCommonItems.d.ts +0 -1
  210. package/dist/Toasters/ToastContext.cjs +5 -0
  211. package/dist/Toasters/ToastContext.cjs.map +1 -1
  212. package/dist/Toasters/ToastContext.d.ts +6 -4
  213. package/dist/Toasters/ToastContext.js +4 -0
  214. package/dist/Toasters/ToastContext.js.map +1 -1
  215. package/dist/Toggles/TogglerTypes.d.ts +0 -1
  216. package/dist/Tooltips/TooltipTypes.d.ts +0 -1
  217. package/dist/Tooltips/TooltipWrapper.d.ts +0 -1
  218. package/dist/common/ScrollableContainer.cjs +44 -0
  219. package/dist/common/ScrollableContainer.cjs.map +1 -0
  220. package/dist/common/ScrollableContainer.d.ts +2 -0
  221. package/dist/common/ScrollableContainer.js +28 -0
  222. package/dist/common/ScrollableContainer.js.map +1 -0
  223. package/dist/icons/contenticons/ContentIcons.cjs +83 -2
  224. package/dist/icons/contenticons/ContentIcons.cjs.map +1 -1
  225. package/dist/icons/contenticons/ContentIcons.d.ts +3 -0
  226. package/dist/icons/contenticons/ContentIcons.js +72 -0
  227. package/dist/icons/contenticons/ContentIcons.js.map +1 -1
  228. package/dist/icons/index.cjs +14 -7
  229. package/dist/icons/index.cjs.map +1 -1
  230. package/dist/icons/index.d.ts +1 -0
  231. package/dist/icons/index.js +14 -7
  232. package/dist/icons/index.js.map +1 -1
  233. package/dist/icons/systemicons/SystemIcons.cjs +30 -1
  234. package/dist/icons/systemicons/SystemIcons.cjs.map +1 -1
  235. package/dist/icons/systemicons/SystemIcons.d.ts +1 -0
  236. package/dist/icons/systemicons/SystemIcons.js +26 -0
  237. package/dist/icons/systemicons/SystemIcons.js.map +1 -1
  238. package/dist/styles/typography.cjs +27 -13
  239. package/dist/styles/typography.cjs.map +1 -1
  240. package/dist/styles/typography.d.ts +2 -0
  241. package/dist/styles/typography.js +27 -13
  242. package/dist/styles/typography.js.map +1 -1
  243. package/dist/utils/utils.cjs +13 -0
  244. package/dist/utils/utils.cjs.map +1 -0
  245. package/dist/utils/utils.d.ts +1 -0
  246. package/dist/utils/utils.js +4 -0
  247. package/dist/utils/utils.js.map +1 -0
  248. package/package.json +22 -17
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownContent.cjs","names":["MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DDContainer","styled","div","COLORS","white","Z_INDEXES","dropdown","props","isButton","offsetLeft","offsetTop","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","scrollBarStyling","Small","MenuContentContainer","ComponentXLStyling","ComponentTextStyle","Bold","neutral_500","ComponentLStyling","ComponentMStyling","Regular","ComponentSStyling","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","Overlay","modal","DropdownContent","React","forwardRef","ref","id","customizationProps","alignLeft","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","useState","isUp","setIsUp","locationDefined","setLocationDefined","top","left","offset","setOffset","dropdownContentRef","useRef","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","calculateOffset","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","undefined","selectedFirst","newValues","stopPropagation","getElements","customContent","style","cls","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, {MutableRefObject} from 'react';\nimport styled, {css} from 'styled-components';\nimport Button from '../Button/Button';\nimport {Size} from '../types';\nimport {ButtonDropdownContentStyling} from './CommonStyling';\nimport {\n ComponentLStyling,\n ComponentXLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle\n} from '../styles/typography';\nimport {COLORS, focusStyles, scrollBarStyling} from '../styles';\nimport {Checkbox, RadioButton} from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\nimport {defaultOnMouseDownHandler} from '../common';\nimport ReactDOM from 'react-dom';\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\nconst OFFSET_BEFORE_SHOW = 1000000;\n\nexport const DDContainer = styled.div<{ offsetTop: string, offsetLeft: string; isButton: boolean; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n pointer-events: auto;\n position: absolute;\n background-color: ${COLORS.white};\n\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n &.down,\n &.up {\n ${props => `transform: translate(${props.offsetLeft}, ${props.offsetTop});`}\n }\n }\n\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\n\n &.outline:focus:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n outline: 4px solid black;\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n &:focus {\n outline: none;\n }\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding: 4px 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n\n`;\n\nconst ItemsContainer = styled.div<{ size?: Size }>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n\n > *:active,\n > *.active {\n z-index: ${Z_INDEXES.active};\n }\n\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string; outline?: boolean }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n\n word-break: break-word;\n }\n\n *:focus {\n outline: none !important;\n }\n\n ${scrollBarStyling(Size.Small)}\n`;\n\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{ size?: Size }>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' :\n props.size == Size.Medium ? '12px' :\n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{ size?: Size }>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{ size?: Size, scrollable?: boolean }>`\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.neutral_200};` : '')}\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\n\n padding: ${(props) => props.size === Size.Small || !props.size\n ? '4px 16px 0px'\n : props.size === Size.Medium\n ? '12px 16px 8px'\n : '16px 16px 12px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: ${Z_INDEXES.modal};\n`;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n outline?: boolean;\n containerRef: React.RefObject<HTMLDivElement>;\n}\n\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n outline,\n containerRef\n }, ref) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({top: '0', left: '0'});\n\n const dropdownContentRef = ref as MutableRefObject<HTMLDivElement> ?? React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n\n const rect = containerRef.current!.getBoundingClientRect();\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\n\n const up = instOffsetWithMenu >= windowHeight;\n\n setOffset({\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\n left: alignLeft ? `calc(-${rect.width}px)`: `calc(-100%)`\n });\n\n setIsUp(up);\n setLocationDefined(true);\n };\n\n const setNewFocusedElement = (index: number) => {\n if (outline) dropdownContentRef.current?.focus();\n\n const newFocusedElement = elRefs[index];\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\n setFocused(index);\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\n\n newFocusedElement.current?.classList.add('dropdown-hover');\n newFocusedElement.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\n if (!items[i - 1]?.disabled) {\n return i;\n }\n }\n\n return index;\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\n if (!!focusedNow) {\n\n focusedNow =\n focusedNow === 1 && haveTopItem()\n ? 0\n : findNextActiveIndex(focusedNow, -1, getFilteredItems());\n\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n let focusedNow = focused;\n\n focusedNow =\n !!focusedNow || focusedNow === 0\n ? findNextActiveIndex(focusedNow, 1, getFilteredItems())\n : haveTopItem() ? 0 : 1;\n\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\n e.preventDefault();\n const focusedElement = elRefs[focused];\n if (focusedElement) {\n focusedElement.current?.click();\n }\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n if (elRefs?.length !== arrLength) {\n setFocused(null);\n }\n\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength]);\n\n React.useLayoutEffect(() => {\n isOpen && !locationDefined && determineDropUp();\n }, [isOpen, locationDefined]);\n\n const haveTopItem = () => {\n if (!customizationProps.pinTopItem) return false;\n\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n /**\n * when dropdown opens set correct position of focused item\n * */\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\n }\n }, [isOpen, focused]);\n\n /**\n * Reset dropdown content state on close\n * */\n React.useEffect(() => {\n if (!isOpen) {\n setLocationDefined(false);\n for (let elRef of elRefs) {\n elRef.current?.classList.remove('dropdown-hover');\n\n }\n setFocused(null);\n dropdownContentRef.current?.classList.remove('outline');\n dropdownContentRef.current?.blur();\n } else {\n if (outline) {\n dropdownContentRef.current?.classList.add('outline');\n dropdownContentRef.current?.focus();\n }\n }\n }, [isOpen, dropdownContentRef, focused, outline]);\n\n /**\n * Scroll item container to top when dropdown opens\n * */\n React.useEffect(() => {\n if (isOpen && itemsListRef.current) {\n itemsListRef.current.scrollTop = 0;\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n if (isOpen){\n calculateOffset();\n window.addEventListener('scroll', calculateOffset);\n window.addEventListener('resize', calculateOffset);\n }\n return () => {\n window.removeEventListener('scroll', calculateOffset);\n window.addEventListener('resize', calculateOffset);\n }\n }, [isOpen])\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n\n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType === 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n select={() => {\n }}\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType === 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType === 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem\n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n tabIndex={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = (messageOnNoResults: string, size: Size) => {\n if (getFilteredItems().length === 0) {\n return (\n <MenuItem item={{value:messageOnNoResults, disabled: true}} size={size} id='noResultsFound' active={false} onClickHandler={e => {}}/>\n );\n }\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item, index) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n item={item}\n tabIndex={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n size={size}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n const calculateOffset = () => {\n const rect = containerRef?.current?.getBoundingClientRect();\n if (rect){\n dropdownContentRef.current.style.left = `${rect.x + rect.width}px`;\n dropdownContentRef.current.style.top = `${rect.y + rect.height}px`;\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\n }\n }\n\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? isUp ? 'up' : 'down' : ''}`\n\n return (\n <Overlay>\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n offsetTop={offset.top}\n offsetLeft={offset.left}\n tabIndex={-1}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={cls}>\n <ListContainer size={size}\n itemsType={customizationProps.itemsType}\n onScroll={handleScroll}\n ref={itemsListRef}\n outline={outline}\n scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\"/>\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements(messageOnNoResults, size)}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button width=\"100%\"\n icon={customizationProps.actionIcon}\n ref={actionButtonRef}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size}\n onClick={() => customizationProps.action() && setIsOpen(false)}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n </Overlay>);\n});\n\nexport default DropdownContent;\n\n"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownContent.cjs","names":["MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DDContainer","styled","div","COLORS","white","Z_INDEXES","dropdown","props","isButton","offsetLeft","offsetTop","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","scrollBarStyling","Small","MenuContentContainer","ComponentXLStyling","ComponentTextStyle","Bold","neutral_500","ComponentLStyling","ComponentMStyling","Regular","ComponentSStyling","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","Overlay","modal","DropdownContent","React","forwardRef","ref","id","customizationProps","alignLeft","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","ariaRolesType","useState","isUp","setIsUp","locationDefined","setLocationDefined","top","left","offset","setOffset","dropdownContentRef","useRef","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","height","up","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","calculateOffset","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","newValues","stopPropagation","getElements","customContent","style","cls","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, { MutableRefObject } from 'react';\nimport styled, { css } from 'styled-components';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling } from './CommonStyling';\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS, focusStyles, scrollBarStyling } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\nimport { Z_INDEXES } from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\nimport { defaultOnMouseDownHandler } from '../common';\nimport ReactDOM from 'react-dom';\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\nconst OFFSET_BEFORE_SHOW = 1000000;\n\nexport const DDContainer = styled.div<{ offsetTop: string; offsetLeft: string; isButton: boolean; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n pointer-events: auto;\n position: absolute;\n background-color: ${COLORS.white};\n\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n &.down,\n &.up {\n ${(props) => `transform: translate(${props.offsetLeft}, ${props.offsetTop});`}\n }\n }\n\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\n\n &.outline:focus:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n outline: 4px solid black;\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n &:focus {\n outline: none;\n }\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding: 4px 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{ size?: Size }>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n\n > *:active,\n > *.active {\n z-index: ${Z_INDEXES.active};\n }\n\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string; outline?: boolean }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${(props) => (props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px')};\n padding-bottom: ${(props) => (props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px')};\n\n word-break: break-word;\n }\n\n *:focus {\n outline: none !important;\n }\n\n ${scrollBarStyling(Size.Small)}\n`;\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1,\n h2,\n h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${(props) => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${(props) => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${(props) => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${(props) => (props.size == Size.Small || !props.size ? '10px 16px 6px' : props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px')};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${(props) => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${(props) => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${(props) => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${(props) => (props.size == Size.Small || !props.size ? '8px 16px' : props.size == Size.Medium ? '12px 24px' : '16px 32px')};\n }\n`;\n\nconst DividerContainer = styled.div<{ size?: Size }>`\n position: relative;\n\n margin-top: ${(props) => (props.size == Size.Large ? '16px' : props.size == Size.Medium ? '12px' : props.size == Size.Small || !props.size ? '8px' : '6px')};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{ size?: Size }>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{ size?: Size; scrollable?: boolean }>`\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.neutral_200};` : '')}\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\n\n padding: ${(props) => (props.size === Size.Small || !props.size ? '4px 16px 0px' : props.size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\n\n button {\n width: 100%;\n }\n`;\n\nconst Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: ${Z_INDEXES.modal};\n`;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n onActiveDescendantChanged?: (descendantId?: string) => void;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n outline?: boolean;\n containerRef: React.RefObject<HTMLDivElement>;\n ariaRolesType?: 'input' | 'menu';\n}\n\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n outline,\n containerRef,\n onActiveDescendantChanged,\n ariaRolesType = 'menu',\n },\n ref,\n ) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\n\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n\n const rect = containerRef.current!.getBoundingClientRect();\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\n\n const up = instOffsetWithMenu >= windowHeight;\n\n setOffset({\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\n });\n\n setIsUp(up);\n setLocationDefined(true);\n };\n\n const setNewFocusedElement = (index: number) => {\n if (outline) dropdownContentRef.current?.focus();\n\n const newFocusedElement = elRefs[index];\n if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? `${id}_topitem` : `${id}_${index}`);\n\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\n setFocused(index);\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\n\n newFocusedElement.current?.classList.add('dropdown-hover');\n newFocusedElement.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\n if (!items[i - 1]?.disabled) {\n return i;\n }\n }\n\n return index;\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\n if (!!focusedNow) {\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\n\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n let focusedNow = focused;\n\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\n\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\n e.preventDefault();\n const focusedElement = elRefs[focused];\n if (focusedElement) {\n focusedElement.current?.click();\n }\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, []);\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n if (elRefs?.length !== arrLength) {\n setFocused(null);\n }\n\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength]);\n\n React.useLayoutEffect(() => {\n isOpen && !locationDefined && determineDropUp();\n }, [isOpen, locationDefined]);\n\n const haveTopItem = () => {\n if (!customizationProps.pinTopItem) return false;\n\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n /**\n * when dropdown opens set correct position of focused item\n * */\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\n }\n }, [isOpen, focused]);\n\n /**\n * Reset dropdown content state on close\n * */\n React.useEffect(() => {\n if (!isOpen) {\n setLocationDefined(false);\n for (let elRef of elRefs) {\n elRef.current?.classList.remove('dropdown-hover');\n }\n setFocused(null);\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\n dropdownContentRef.current?.classList.remove('outline');\n dropdownContentRef.current?.blur();\n } else {\n if (outline) {\n dropdownContentRef.current?.classList.add('outline');\n dropdownContentRef.current?.focus();\n }\n }\n }, [isOpen, dropdownContentRef, focused, outline]);\n\n /**\n * Scroll item container to top when dropdown opens\n * */\n React.useEffect(() => {\n if (isOpen && itemsListRef.current) {\n itemsListRef.current.scrollTop = 0;\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n if (isOpen) {\n calculateOffset();\n window.addEventListener('scroll', calculateOffset);\n window.addEventListener('resize', calculateOffset);\n }\n return () => {\n window.removeEventListener('scroll', calculateOffset);\n window.removeEventListener('resize', calculateOffset);\n };\n }, [isOpen]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find((x) => x.value == selectedValues[0]) : null;\n\n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType === 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n role='menuitemradio'\n iconPointerEventsTransparent={true}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n select={() => {}}\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType === 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n role='menuitemcheckbox'\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);\n }}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : selectedFirst?.displayLabel ?? selectedFirst?.value}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType === 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n tabIndex={-1}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}\n />\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = (messageOnNoResults: string, size: Size) => {\n if (getFilteredItems().length === 0) {\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\n }\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item, index) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n role='menuitemradio'\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${index + 1}`}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\n id={`${id}_${index + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n role='menuitemcheckbox'\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n key={`key_${id}_${index + 1}`}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\n id={`${id}_${index + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n item={item}\n tabIndex={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n size={size}\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}\n />\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n const calculateOffset = () => {\n const rect = containerRef?.current?.getBoundingClientRect();\n if (rect) {\n dropdownContentRef.current.style.left = `${rect.x + rect.width}px`;\n dropdownContentRef.current.style.top = `${rect.y + rect.height}px`;\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\n }\n };\n\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\n\n return (\n <Overlay>\n <DDContainer\n role={ariaRolesType == \"menu\" ? \"menu\" : \"optionlist\"}\n ref={dropdownContentRef}\n size={size}\n offsetTop={offset.top}\n id={id}\n offsetLeft={offset.left}\n tabIndex={-1}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={cls}>\n <ListContainer\n role=\"group\"\n size={size}\n itemsType={customizationProps.itemsType}\n onScroll={handleScroll}\n ref={itemsListRef}\n outline={outline}\n scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent && (\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\" />\n </DividerContainer>\n </MenuContentContainer>\n )}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements(messageOnNoResults, size)}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button\n width=\"100%\"\n role=\"menuitem\"\n icon={customizationProps.actionIcon}\n ref={actionButtonRef}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size}\n onClick={() => customizationProps.action() && setIsOpen(false)}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n </Overlay>\n );\n },\n);\n\nexport default DropdownContent;\n"],"mappings":"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"}
@@ -46,6 +46,7 @@ export interface DropdownProps {
46
46
  id: string;
47
47
  filter: string;
48
48
  width?: string;
49
+ onActiveDescendantChanged?: (descendantId?: string) => void;
49
50
  selectedValues: string[];
50
51
  setSelectedValues: (val: string[]) => void;
51
52
  messageOnNoResults: string;
@@ -53,6 +54,7 @@ export interface DropdownProps {
53
54
  setFocused: (focused: number | null) => void;
54
55
  outline?: boolean;
55
56
  containerRef: React.RefObject<HTMLDivElement>;
57
+ ariaRolesType?: 'input' | 'menu';
56
58
  }
57
59
  declare const DropdownContent: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLDivElement>>;
58
60
  export default DropdownContent;
@@ -27,7 +27,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
27
27
  var MAX_MENU_HEIGHT = 240;
28
28
  var AVG_OPTION_HEIGHT = 48;
29
29
  var OFFSET_BEFORE_SHOW = 1000000;
30
- export var DDContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: none;\n pointer-events: auto;\n position: absolute;\n background-color: ", ";\n\n z-index: ", ";\n margin: ", ";\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n &.down,\n &.up {\n ", "\n }\n }\n\n transform: translate(-", "px, -", "px);\n\n &.outline:focus:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n outline: 4px solid black;\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n &:focus {\n outline: none;\n }\n\n ", ";\n\n border: 1px solid ", ";\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding: 4px 0px;\n\n min-width: ", ";\n border-radius: ", ";\n\n max-height: ", ";\n\n"])), COLORS.white, Z_INDEXES.dropdown, function (props) {
30
+ export var DDContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: none;\n pointer-events: auto;\n position: absolute;\n background-color: ", ";\n\n z-index: ", ";\n margin: ", ";\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n &.down,\n &.up {\n ", "\n }\n }\n\n transform: translate(-", "px, -", "px);\n\n &.outline:focus:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n outline: 4px solid black;\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n &:focus {\n outline: none;\n }\n\n ", ";\n\n border: 1px solid ", ";\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding: 4px 0px;\n\n min-width: ", ";\n border-radius: ", ";\n\n max-height: ", ";\n"])), COLORS.white, Z_INDEXES.dropdown, function (props) {
31
31
  return props.isButton ? '-4px' : '4px 0px';
32
32
  }, function (props) {
33
33
  return "transform: translate(".concat(props.offsetLeft, ", ").concat(props.offsetTop, ");");
@@ -54,7 +54,7 @@ var ListContainer = styled.div(_templateObject3 || (_templateObject3 = _taggedTe
54
54
  }, function (props) {
55
55
  return props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px';
56
56
  }, scrollBarStyling(Size.Small));
57
- 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) {
57
+ var MenuContentContainer = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n h1,\n h2,\n 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) {
58
58
  return props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500);
59
59
  }, function (props) {
60
60
  return props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500);
@@ -101,7 +101,10 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
101
101
  setSelectedValues = _ref.setSelectedValues,
102
102
  messageOnNoResults = _ref.messageOnNoResults,
103
103
  outline = _ref.outline,
104
- containerRef = _ref.containerRef;
104
+ containerRef = _ref.containerRef,
105
+ onActiveDescendantChanged = _ref.onActiveDescendantChanged,
106
+ _ref$ariaRolesType = _ref.ariaRolesType,
107
+ ariaRolesType = _ref$ariaRolesType === void 0 ? 'menu' : _ref$ariaRolesType;
105
108
 
106
109
  var _React$useState = React.useState(false),
107
110
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -147,6 +150,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
147
150
 
148
151
  if (outline) (_dropdownContentRef$c = dropdownContentRef.current) === null || _dropdownContentRef$c === void 0 ? void 0 : _dropdownContentRef$c.focus();
149
152
  var newFocusedElement = elRefs[index];
153
+ if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? "".concat(id, "_topitem") : "".concat(id, "_").concat(index));
150
154
  var oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;
151
155
 
152
156
  if (newFocusedElement && newFocusedElement !== oldFocusedElement) {
@@ -201,6 +205,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
201
205
  } else if (e.key === 'Escape' || e.key === 'Esc') {
202
206
  setIsOpen(false);
203
207
  setFocused(null);
208
+ if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);
204
209
  } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== (actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.current)) {
205
210
  e.preventDefault();
206
211
  var focusedElement = elRefs[focused];
@@ -210,6 +215,8 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
210
215
 
211
216
  (_focusedElement$curre = focusedElement.current) === null || _focusedElement$curre === void 0 ? void 0 : _focusedElement$curre.click();
212
217
  }
218
+
219
+ if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);
213
220
  }
214
221
  }
215
222
  };
@@ -219,7 +226,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
219
226
  return function () {
220
227
  document.removeEventListener('keydown', handleKeyDown);
221
228
  };
222
- });
229
+ }, []);
223
230
  var scrollPosition = React.useRef(0);
224
231
 
225
232
  var handleScroll = function handleScroll() {
@@ -316,6 +323,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
316
323
  }
317
324
 
318
325
  setFocused(null);
326
+ if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);
319
327
  (_dropdownContentRef$c2 = dropdownContentRef.current) === null || _dropdownContentRef$c2 === void 0 ? void 0 : _dropdownContentRef$c2.classList.remove('outline');
320
328
  (_dropdownContentRef$c3 = dropdownContentRef.current) === null || _dropdownContentRef$c3 === void 0 ? void 0 : _dropdownContentRef$c3.blur();
321
329
  } else {
@@ -345,7 +353,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
345
353
 
346
354
  return function () {
347
355
  window.removeEventListener('scroll', calculateOffset);
348
- window.addEventListener('resize', calculateOffset);
356
+ window.removeEventListener('resize', calculateOffset);
349
357
  };
350
358
  }, [isOpen]);
351
359
 
@@ -389,7 +397,11 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
389
397
  size: size,
390
398
  children: [customizationProps.itemsType === 'radio' && /*#__PURE__*/_jsx(RadioButton, {
391
399
  ref: elRefs[0],
400
+ role: "menuitemradio",
392
401
  iconPointerEventsTransparent: true,
402
+ onFocus: function onFocus(e) {
403
+ return onActiveDescendantChanged && onActiveDescendantChanged("".concat(id, "_topitem"));
404
+ },
393
405
  tabIndexVal: -1,
394
406
  className: "".concat(focused === 0 ? 'dropdown-hover' : ''),
395
407
  select: function select() {},
@@ -399,6 +411,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
399
411
  selected: true
400
412
  }), customizationProps.itemsType === 'checkbox' && /*#__PURE__*/_jsx(Checkbox, {
401
413
  ref: elRefs[0],
414
+ role: "menuitemcheckbox",
402
415
  tabIndexVal: -1,
403
416
  className: "".concat(focused === 0 ? 'dropdown-hover' : ''),
404
417
  select: function select(selected) {
@@ -409,6 +422,9 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
409
422
  setSelectedValues(newValues);
410
423
  if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);
411
424
  },
425
+ onFocus: function onFocus(e) {
426
+ return onActiveDescendantChanged && onActiveDescendantChanged("".concat(id, "_topitem"));
427
+ },
412
428
  iconPointerEventsTransparent: true,
413
429
  semiSelected: customizationProps.multiSelect && !allSelected && (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.length) > 0,
414
430
  size: size,
@@ -418,10 +434,14 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
418
434
  }), customizationProps.itemsType === 'normal' && /*#__PURE__*/_jsx(_Fragment, {
419
435
  children: suggestions.map(function (x) {
420
436
  return /*#__PURE__*/_jsx(MenuItem, {
437
+ role: ariaRolesType == 'input' ? 'option' : 'menu',
421
438
  item: x,
422
439
  size: size,
423
440
  active: false,
424
441
  tabIndex: -1,
442
+ onFocus: function onFocus(e) {
443
+ return onActiveDescendantChanged && onActiveDescendantChanged("".concat(id, "_topitem"));
444
+ },
425
445
  className: "".concat(focused === 0 ? 'dropdown-hover' : ''),
426
446
  ref: elRefs[0],
427
447
  id: "".concat(id, "_topitem"),
@@ -461,6 +481,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
461
481
 
462
482
  return /*#__PURE__*/_jsxs(React.Fragment, {
463
483
  children: [item.customContent, !item.customContent && customizationProps.itemsType == 'radio' && /*#__PURE__*/_jsx(RadioButton, {
484
+ role: "menuitemradio",
464
485
  select: function select(selected) {
465
486
  return handleItemClick(selected, item);
466
487
  },
@@ -470,10 +491,14 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
470
491
  className: "".concat(index + 1 === focused ? 'dropdown-hover' : ''),
471
492
  iconPointerEventsTransparent: true,
472
493
  disabled: item === null || item === void 0 ? void 0 : item.disabled,
494
+ onFocus: function onFocus(e) {
495
+ return onActiveDescendantChanged && onActiveDescendantChanged("".concat(id, "_").concat(index + 1));
496
+ },
473
497
  id: "".concat(id, "_").concat(index + 1),
474
498
  label: (_item$displayLabel = item.displayLabel) !== null && _item$displayLabel !== void 0 ? _item$displayLabel : item.value,
475
499
  selected: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.includes(item.value)
476
500
  }, "key_".concat(id, "_").concat(index + 1)), !item.customContent && customizationProps.itemsType == 'checkbox' && /*#__PURE__*/_jsx(Checkbox, {
501
+ role: "menuitemcheckbox",
477
502
  select: function select(selected) {
478
503
  return handleItemClick(selected, item);
479
504
  },
@@ -483,15 +508,22 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
483
508
  ref: elRefs[index + 1],
484
509
  size: size,
485
510
  tabIndexVal: -1,
511
+ onFocus: function onFocus(e) {
512
+ return onActiveDescendantChanged && onActiveDescendantChanged("".concat(id, "_").concat(index + 1));
513
+ },
486
514
  id: "".concat(id, "_").concat(index + 1),
487
515
  label: (_item$displayLabel2 = item.displayLabel) !== null && _item$displayLabel2 !== void 0 ? _item$displayLabel2 : item.value,
488
516
  selected: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.includes(item.value)
489
517
  }, "key_".concat(id, "_").concat(index + 1)), !item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && /*#__PURE__*/_jsx(MenuItem, {
518
+ role: ariaRolesType == 'input' ? 'option' : 'menu',
490
519
  id: "".concat(id, "_").concat(index + 1),
491
520
  item: item,
492
521
  tabIndex: -1,
493
522
  className: "".concat(index + 1 === focused ? 'dropdown-hover' : ''),
494
523
  size: size,
524
+ onFocus: function onFocus(e) {
525
+ return onActiveDescendantChanged && onActiveDescendantChanged("".concat(id, "_").concat(index + 1));
526
+ },
495
527
  active: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.includes(item.value),
496
528
  ref: elRefs[index + 1],
497
529
  onClickHandler: function onClickHandler(e) {
@@ -522,9 +554,11 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
522
554
  var cls = "".concat(isOpen ? 'show' : '', " ").concat(isOpen && outline ? 'outline' : '', " ").concat(locationDefined ? isUp ? 'up' : 'down' : '');
523
555
  return /*#__PURE__*/_jsx(Overlay, {
524
556
  children: /*#__PURE__*/_jsxs(DDContainer, {
557
+ role: ariaRolesType == "menu" ? "menu" : "optionlist",
525
558
  ref: dropdownContentRef,
526
559
  size: size,
527
560
  offsetTop: offset.top,
561
+ id: id,
528
562
  offsetLeft: offset.left,
529
563
  tabIndex: -1,
530
564
  isButton: isButton,
@@ -533,6 +567,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
533
567
  maxHeight: customizationProps.maxHeight,
534
568
  className: cls,
535
569
  children: [/*#__PURE__*/_jsxs(ListContainer, {
570
+ role: "group",
536
571
  size: size,
537
572
  itemsType: customizationProps.itemsType,
538
573
  onScroll: handleScroll,
@@ -553,6 +588,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
553
588
  scrollable: customizationProps.scrollable,
554
589
  children: /*#__PURE__*/_jsx(Button, {
555
590
  width: "100%",
591
+ role: "menuitem",
556
592
  icon: customizationProps.actionIcon,
557
593
  ref: actionButtonRef,
558
594
  loading: customizationProps.actionLoading,
@@ -601,12 +637,14 @@ DropdownContent.propTypes = {
601
637
  id: _pt.string.isRequired,
602
638
  filter: _pt.string.isRequired,
603
639
  width: _pt.string,
640
+ onActiveDescendantChanged: _pt.func,
604
641
  selectedValues: _pt.arrayOf(_pt.string).isRequired,
605
642
  setSelectedValues: _pt.func.isRequired,
606
643
  messageOnNoResults: _pt.string.isRequired,
607
644
  focused: _pt.oneOfType([_pt.number, _pt.oneOf([null])]),
608
645
  setFocused: _pt.func.isRequired,
609
- outline: _pt.bool
646
+ outline: _pt.bool,
647
+ ariaRolesType: _pt.oneOf(['input', 'menu'])
610
648
  };
611
649
  export default DropdownContent;
612
650
  //# sourceMappingURL=DropdownContent.js.map