{"version":3,"file":"MainMenu.cjs","names":["React","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_NavItem","_icons","_styles","_SubMenu","_Button","_common","_NavItem2","_utils","_HyperLink","_Navigation","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","NavContainer","styled","div","BREAKPOINTS","MEDIUM","NavItemDiv","LARGE","NavButton","button","props","COLORS","getColor","theme","ExtendedSection","ExtendedMenuOption","MainMenu","_ref","items","rightSideRef","menuButtonRef","useRef","dropdownMenusOpenedArray","navigate","useNavigation","mainMenuRef","numberOfItemsAllowed","setNumberOfItemsAllowed","useState","subMenuRefs","setAllSubMenuRefs","extendedMenuOptionRef","createRef","useEffect","map","x","type","undefined","forceUpdate","activeItem","setActiveItemId","focusedItemId","setFocusedItemId","widthOfItem","recalculateNumberOfItemsAllowed","current","number","Math","floor","offsetLeft","onMouseLeave","event","id","onMouseEnter","existingRefForId","find","window","addEventListener","removeEventListener","onFocus","onKeyDownTop","key","renderItem","item","index","_ref2","icon","to","exact","disabled","external","action","label","note","pinned","rest","_objectWithoutProperties2","jsx","NavItem","as","className","onMouseDown","defaultOnMouseDownHandler","children","StyledLink","$variant","href","onClick","preventDefault","existingRef","onKeyDown","code","containsActiveItem","checkIfContainsItem","jsxs","style","position","Boolean","role","tabIndex","SystemIcons","ArrowDropDown","size","SubMenu","ariaLabelledBy","ref","onItemFocused","activeItemId","nestPath","onItemStateChanged","state","topLevel","extended","extendedSectionKeyHandler","stopPropagation","IconButton","slice","variant","shape","MoreHorizontal","propTypes","_propTypes","array","isRequired","_default","exports"],"sources":["../../../src/GlobalNavigationBar/desktop/MainMenu.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport { NavItem } from '../../NavItem';\r\nimport {SystemIcons} from '../../icons';\r\nimport { COLORS, BREAKPOINTS } from '../../styles';\r\nimport { Menu } from './ExtendedMainMenu';\r\nimport { SubMenu } from './SubMenu';\r\nimport { IconButton } from '../../Button';\r\nimport { defaultOnMouseDownHandler } from '../../common';\r\nimport { MenuNavigationItemTypeDesktopGroup, MenuNavigationItemTypeItem } from '../types';\r\nimport { NavItemDiv } from '../../NavItem/NavItem';\r\nimport { checkIfContainsItem } from '../utils';\r\nimport HyperLink, { StyledLink } from '../../HyperLink/HyperLink';\r\nimport { useNavigation } from '../../Navigation';\r\n\r\nconst NavContainer = styled.div`\r\n  display: none;\r\n  flex-grow: 1;\r\n  justify-content: flex-start;\r\n  align-items: center;\r\n  \r\n  padding: 0 16px;\r\n\r\n  ${BREAKPOINTS.MEDIUM} {\r\n    display: flex;\r\n  }\r\n  \r\n  ${NavItemDiv} {\r\n    cursor: pointer;\r\n  }\r\n  ${BREAKPOINTS.LARGE} {\r\n    padding: 0 32px;\r\n  }\r\n\r\n  a {\r\n    text-decoration: none;\r\n  }\r\n`;\r\n\r\nconst NavButton = styled.button`\r\n  background: ${props => COLORS.getColor('white', props.theme)};\r\n  border: 0;\r\n`;\r\n\r\nconst ExtendedSection = styled.div`\r\n  position: relative;\r\n`;\r\n\r\nconst ExtendedMenuOption = 'extendedOption';\r\n\r\ntype Props = {\r\n  items: (MenuNavigationItemTypeItem | MenuNavigationItemTypeDesktopGroup)[];\r\n  rightSideRef?: React.RefObject<HTMLDivElement | null> | null | undefined;\r\n};\r\n\r\nconst MainMenu = ({ items, rightSideRef }: Props): React.ReactElement<Props> => {\r\n  const menuButtonRef = React.useRef<HTMLButtonElement>(null);\r\n  //we have to use refs instead of 'state' here, because when onmouseleave is triggered for multiple nested divs, state update is not being updated in between\r\n  const dropdownMenusOpenedArray = React.useRef<string[]>([]);\r\n  const { navigate } = useNavigation();\r\n  const mainMenuRef: React.RefObject<HTMLDivElement | null> | null | undefined = React.useRef(null);\r\n  const [numberOfItemsAllowed, setNumberOfItemsAllowed] = React.useState<number>(1);\r\n  const [subMenuRefs, setAllSubMenuRefs] = React.useState<(React.RefObject<HTMLUListElement | null> | undefined)[]>([]);\r\n  const extendedMenuOptionRef = React.createRef<HTMLUListElement>();\r\n\r\n  React.useEffect(() => {\r\n    setAllSubMenuRefs(items.map((x) => (x.type == 'desktopgroup' ? React.createRef<HTMLUListElement>() : undefined)));\r\n  }, [items]);\r\n\r\n  const [, forceUpdate] = React.useState({});\r\n  const [activeItem, setActiveItemId] = React.useState<string>('');\r\n  const [focusedItemId, setFocusedItemId] = React.useState<string>('');\r\n\r\n  const widthOfItem = 120;\r\n  const recalculateNumberOfItemsAllowed = () => {\r\n    if (rightSideRef?.current && mainMenuRef?.current) {\r\n      const number = Math.floor((rightSideRef?.current?.offsetLeft - mainMenuRef?.current?.offsetLeft) / widthOfItem);\r\n      if (number !== numberOfItemsAllowed) {\r\n        setNumberOfItemsAllowed(number);\r\n      }\r\n    }\r\n  };\r\n\r\n  const onMouseLeave = (event: any, id: string) => {\r\n    dropdownMenusOpenedArray.current = [...dropdownMenusOpenedArray.current.filter((x) => x != id)];\r\n    //just trigger rerendering\r\n    forceUpdate({});\r\n  };\r\n\r\n  const onMouseEnter = (event: any, id: string) => {\r\n    const existingRefForId = dropdownMenusOpenedArray.current.find((x) => x == id);\r\n    if (existingRefForId == null) {\r\n      dropdownMenusOpenedArray.current = [...dropdownMenusOpenedArray.current, id];\r\n      //just trigger rerendering\r\n      forceUpdate({});\r\n    }\r\n  };\r\n\r\n  React.useEffect(() => {\r\n    recalculateNumberOfItemsAllowed();\r\n    // Bind the event listener\r\n    window.addEventListener('resize', recalculateNumberOfItemsAllowed);\r\n    return () => {\r\n      // Unbind the event listener on clean up\r\n      window.removeEventListener('resize', recalculateNumberOfItemsAllowed);\r\n    };\r\n  }, []);\r\n\r\n  React.useEffect(() => {\r\n    recalculateNumberOfItemsAllowed();\r\n  }, [items.length]);\r\n\r\n  const onFocus = (event: any) => {\r\n    //no open dropdowns if top level was entered\r\n    dropdownMenusOpenedArray.current = [];\r\n    forceUpdate({});\r\n  };\r\n\r\n  const onKeyDownTop = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n    if (event.key === 'Escape' || event.key === 'Esc') {\r\n      dropdownMenusOpenedArray.current = [];\r\n      //just trigger rerendering\r\n      forceUpdate({});\r\n    }\r\n  };\r\n\r\n  const renderItem = (item: MenuNavigationItemTypeItem | MenuNavigationItemTypeDesktopGroup, index: number) => {\r\n    if (index > numberOfItemsAllowed - 2) return null;\r\n    if (item.type != 'desktopgroup') {\r\n      const { icon, to, exact, disabled, external, action, label, note, pinned, ...rest } = item as MenuNavigationItemTypeItem;\r\n      return item?.disabled ? (\r\n        <NavItem as={NavButton} exact={exact} className=\"disabled\" key={item.label} onMouseDown={defaultOnMouseDownHandler}>\r\n          {item?.label}\r\n        </NavItem>\r\n      ) : (\r\n        <NavItem as={StyledLink} exact={exact} $variant=\"styleless\" onFocus={onFocus} href={to || ''} key={label} onMouseDown={defaultOnMouseDownHandler} \r\n          onClick={(e: React.MouseEvent) => {\r\n            if(action)\r\n              action(e); \r\n            else\r\n              navigate && navigate(to, false);\r\n            e?.preventDefault(); }} {...rest}>\r\n          {item?.label}\r\n        </NavItem>\r\n      );\r\n    } else {\r\n      const existingRef = dropdownMenusOpenedArray.current.find((x) => x == item.id);\r\n      const onClick = () => {\r\n        if (existingRef == null) {\r\n          dropdownMenusOpenedArray.current = [...dropdownMenusOpenedArray.current, item.id];\r\n          //just trigger rerendering\r\n          forceUpdate({});\r\n        }\r\n      };\r\n      const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n        if (event.key == 'Enter' || event.code == 'Space') {\r\n          dropdownMenusOpenedArray.current = [...dropdownMenusOpenedArray.current, item.id];\r\n          //just trigger rerendering\r\n          forceUpdate({});\r\n        } \r\n      };\r\n\r\n      const containsActiveItem = checkIfContainsItem(item, activeItem);\r\n      return (\r\n        <div\r\n          style={{ position: 'relative' }}\r\n          onMouseEnter={(event) => onMouseEnter(event, item.id ?? '')}\r\n          onMouseLeave={(event) => onMouseLeave(event, item.id ?? '')}>\r\n          <NavItem\r\n            id={item.id + '_parentOption'}\r\n            aria-expanded={Boolean(existingRef)}\r\n            aria-activedescendant={containsActiveItem ? activeItem : ''}\r\n            aria-controls={item.id}\r\n            role=\"listbox\"\r\n            onFocus={onFocus}\r\n            onKeyDown={onKeyDown}\r\n            tabIndex={0}\r\n            className={existingRef != null || checkIfContainsItem(item, activeItem) ? 'active' : ''}\r\n            key={item.label}\r\n            href={null}\r\n            onClick={onClick}>\r\n            {item?.label} <SystemIcons.ArrowDropDown size=\"24px\" />\r\n          </NavItem>\r\n          <SubMenu\r\n            ariaLabelledBy={item.id + '_parentOption'}\r\n            ref={subMenuRefs[index]}\r\n            onItemFocused={setFocusedItemId}\r\n            focusedItemId={focusedItemId}\r\n            activeItemId={activeItem}\r\n            nestPath={[item.id]}\r\n            onItemStateChanged={(item, state) => {\r\n              if (state) {\r\n                setActiveItemId(item);\r\n              } else if (item == activeItem) setActiveItemId('');\r\n            }}\r\n            item={item as MenuNavigationItemTypeDesktopGroup}\r\n            dropdownMenusOpenedArray={dropdownMenusOpenedArray}\r\n            index={index + 1}\r\n            topLevel={true}\r\n          />\r\n        </div>\r\n      );\r\n    }\r\n  };\r\n\r\n\r\n  const extended = dropdownMenusOpenedArray.current.find((x) => x == ExtendedMenuOption);\r\n  const extendedSectionKeyHandler = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n    if (event.key == 'Enter' || event.code == 'Space') {\r\n      event.stopPropagation();\r\n\r\n      dropdownMenusOpenedArray.current = [ExtendedMenuOption];\r\n      forceUpdate({});\r\n    }\r\n  };\r\n\r\n  return (\r\n    <NavContainer role=\"navigation\" className=\"GlobalNavigationMainMenu\" ref={mainMenuRef} onKeyDown={onKeyDownTop}>\r\n      {items?.map(renderItem)}\r\n      {items.length + 1 > numberOfItemsAllowed && (\r\n        <ExtendedSection\r\n          onKeyDown={(event) => extendedSectionKeyHandler(event)}\r\n          onMouseEnter={(event) => onMouseEnter(event, ExtendedMenuOption)}\r\n          onMouseLeave={(event) => onMouseLeave(event, ExtendedMenuOption)}>\r\n          <IconButton\r\n            id={ExtendedMenuOption + '_parentOption'}\r\n            aria-expanded={Boolean(extended)}\r\n            aria-activedescendant={checkIfContainsItem({ items: items.slice(numberOfItemsAllowed - 1), id: ExtendedMenuOption }, activeItem) ? activeItem : ''}\r\n            aria-controls={ExtendedMenuOption}\r\n            role=\"listbox\"\r\n            \r\n            ref={menuButtonRef} variant={'secondary'} shape={'circular'} action={() => {}}>\r\n            <SystemIcons.MoreHorizontal size=\"24px\"/>\r\n          </IconButton>\r\n          <SubMenu\r\n            ariaLabelledBy={ExtendedMenuOption + '_parentOption'}\r\n            activeItemId={activeItem}\r\n            onItemFocused={setFocusedItemId}\r\n            focusedItemId={focusedItemId}\r\n            ref={extendedMenuOptionRef}\r\n            onItemStateChanged={(item, state) => {\r\n              if (state) setActiveItemId(item);\r\n              else if (item == activeItem) setActiveItemId('');\r\n            }}\r\n            nestPath={[ExtendedMenuOption]}\r\n            item={{ items: items.slice(numberOfItemsAllowed - 1), id: ExtendedMenuOption }}\r\n            topLevel={true}\r\n            index={0}\r\n            dropdownMenusOpenedArray={dropdownMenusOpenedArray}\r\n          />\r\n        </ExtendedSection>\r\n      )}\r\n    </NavContainer>\r\n  );\r\n};\r\n\r\nexport default MainMenu;\r\n"],"mappings":"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","ignoreList":[]}