{"version":3,"file":"Menu.js","sources":["../../scripts/models/index.ts","../../scripts/menuComponent/components/MenuCard.tsx","../../scripts/sharedComponents/DropDown.tsx","../../scripts/menuComponent/components/MenuLang.tsx","../../scripts/menuComponent/components/MenuLinkList.tsx","../../scripts/menuComponent/components/MenuSearch.tsx","../../scripts/menuComponent/components/SubNavigationDesk.tsx","../../scripts/menuComponent/components/MenuDesktop.tsx","../../scripts/menuComponent/components/SubNavigationMobile.tsx","../../scripts/menuComponent/components/MenuMobile.tsx","../../scripts/menuComponent/Menu.tsx"],"sourcesContent":["// ------ SHARED ------\r\nexport interface ILink {\r\n Name: string\r\n Target: string\r\n Url: string\r\n}\r\n\r\nexport interface IChallengeHighlight {\r\n Heading: string\r\n ImageUrl: string\r\n Link: ILink\r\n Teaser: string\r\n}\r\n\r\nexport interface IArticleItem {\r\n ImageUrl: string\r\n ImageAltText: string\r\n Heading: string\r\n Teaser: string\r\n Link: string\r\n Area: string\r\n Date: string\r\n}\r\n\r\nexport interface IImage {\r\n Url: string\r\n Alt: string\r\n}\r\n\r\n// ------ MENU ------\r\n\r\nexport interface IMenuLeftSide {\r\n Heading: string\r\n ImageUrl: string\r\n Link: ILink\r\n Text: string\r\n SubLinks: ILink[]\r\n}\r\n\r\nexport interface IInfoBox {\r\n Heading: string\r\n Link: ILink\r\n Teaser: string\r\n}\r\n\r\nexport interface IMenuItem {\r\n Highlight: boolean\r\n IsDirectLink: boolean\r\n LinkUrl: string\r\n MenuTitle: string\r\n LeftSide: IMenuLeftSide\r\n RightSide: (\r\n | { LinkList: ILink[] }\r\n | IChallengeHighlight\r\n | { Tabs: ITabMenu[] }\r\n )[]\r\n InfoBox?: IInfoBox\r\n}\r\n\r\nexport interface ITabMenu {\r\n Items: ({ LinkList: ILink[] } | IChallengeHighlight)[]\r\n LinkLabel: string\r\n}\r\n\r\nexport interface IMenuContent {\r\n MenuItems: IMenuItem[]\r\n}\r\n\r\nexport interface ILanguageContent {\r\n Name: string\r\n Url: string\r\n}\r\n\r\nexport interface ISearchContent {\r\n ChallengeHighlights: IChallengeHighlight[]\r\n PopularSearchTerms: string[]\r\n PopularSearchTitle: string\r\n SearchUrl: string\r\n CloseButtonText: string\r\n PlaceholderText: string\r\n}\r\n\r\nexport interface IHeaderContent {\r\n headerContent: IMenuContent\r\n languageItems: ILanguageContent[]\r\n search: ISearchContent\r\n}\r\n\r\n// ------ ACCORDION ------\r\n\r\nexport interface IDownloadAccordionContentItem {\r\n Title: string\r\n Text?: string\r\n Files?: ILink[]\r\n File?: ILink\r\n AudioFile?: ILink\r\n PresentationFile?: ILink\r\n}\r\nexport interface IDownloadAccordionContent {\r\n DownloadButtonLabel: string\r\n Items: IDownloadAccordionContentItem[]\r\n}\r\n\r\nexport interface IWhitePaperAccordionItems {\r\n Content: string\r\n Heading: string\r\n PaperNumber: string\r\n PaperUrl: string\r\n}\r\nexport interface IWhitePaperAccordionContent {\r\n LinkText: string\r\n LoadMore: string\r\n AllLabel: string\r\n Items: IWhitePaperAccordionItems[]\r\n Filters: IFilterOverview[]\r\n}\r\n\r\nexport interface IRteAccordionItems {\r\n Content: string\r\n Heading: string\r\n}\r\nexport interface IRteAccordionContent {\r\n Heading: string\r\n Items: IRteAccordionItems[]\r\n}\r\n\r\n// ------ NEWS OVERVIEW ------\r\n\r\nexport interface IOverviewItem {\r\n ImageUrl: string\r\n ImageAltText: string\r\n Heading: string\r\n Teaser: string\r\n Link: string\r\n Area: string\r\n Date: string\r\n}\r\n\r\nexport interface INewsOverview {\r\n TotalCount: number\r\n Articles: IArticleItem[]\r\n Filters: string[]\r\n}\r\n\r\nexport interface INewsOverviewContent {\r\n NewsOverview: INewsOverview\r\n NewsAllLabel: string\r\n NewsHeading: string\r\n ArticleLinkLabel: string\r\n}\r\n\r\nexport interface IFilterOverview {\r\n FilterName: string\r\n PropertyToMatch: string\r\n UseAsTabs: boolean\r\n Values: string[]\r\n}\r\n\r\nexport interface IOverview {\r\n TotalCount: number\r\n Items: IOverviewItem[]\r\n Filters: IFilterOverview[]\r\n}\r\n\r\nexport interface IOverviewContent {\r\n Overview: IOverview\r\n AllLabel: string\r\n Heading: string\r\n LinkLabel: string\r\n}\r\n// ------ PRODUCT OVERVIEW ------\r\nexport interface IItemOverviewContent {\r\n Overview: IOverview\r\n AllLabel: string\r\n Heading: string\r\n LinkLabel: string\r\n PageNodeId: string\r\n Culture: string\r\n LoadMore: string\r\n}\r\n\r\nexport interface IAnswerOverviewApi {\r\n filters: string\r\n items: IItemOverviewApi[]\r\n page: number\r\n pageSize: number\r\n totalCount: number\r\n}\r\nexport interface IItemOverviewApi {\r\n imageUrl: string\r\n imageAltText: string\r\n heading: string\r\n teaser: string\r\n link: string\r\n area: string\r\n date: string\r\n}\r\n\r\n// ------ CONTACT OVERVIEW ------\r\nexport interface IContactPersons {\r\n name: string\r\n email: boolean\r\n imageUrl: string\r\n linkedInUrl: string\r\n phone: string\r\n title: string\r\n office?: string\r\n}\r\nexport interface IOffices {\r\n name: string\r\n isMainOffice: boolean\r\n country: string\r\n contactPersons: IContactPersons[]\r\n}\r\nexport interface IRegions {\r\n name: string\r\n contactPersons: IContactPersons[]\r\n}\r\nexport interface IContact {\r\n countryFilter: string[]\r\n regionFilter: string[]\r\n regions: IRegions[]\r\n activeRegion: string\r\n}\r\n\r\nexport interface IContactContent {\r\n Overview: IContact\r\n CountryFilterLabel: string\r\n Heading: string\r\n RegionFilterLabel: string\r\n Culture: string\r\n}\r\n\r\n// ------ TAB NAVIGATION OVERVIEW ------\r\n\r\nexport interface ITabLink {\r\n Href: string\r\n Rel: string\r\n Target: string\r\n Text: string\r\n Title: string\r\n}\r\nexport interface ITabItems {\r\n Heading: string\r\n Image: IImage\r\n Links: ITabLink[]\r\n Link: ITabLink\r\n}\r\n\r\nexport interface ITabNavigationContent {\r\n Heading: string\r\n AllLabel: string\r\n TabItems: ITabItems[]\r\n}\r\n\r\n// ------ ENUM ------\r\n\r\nexport enum LINK_STYLE_ENUM {\r\n TEXT = 'link-text',\r\n CHEVRON = 'link-chevron-right',\r\n}\r\n\r\nexport enum DEVICES_EUM {\r\n DESKTOP = 'desktop',\r\n MOBILE = 'mobile',\r\n}\r\n","import React from 'react'\r\nimport { ILink, LINK_STYLE_ENUM } from '../../models'\r\n\r\nfunction MenuCard({\r\n heading,\r\n text,\r\n imageUrl,\r\n link,\r\n linkStyle = LINK_STYLE_ENUM.TEXT,\r\n linkText = true,\r\n}: {\r\n heading: string\r\n text: string\r\n imageUrl?: string\r\n link?: ILink\r\n linkStyle?: LINK_STYLE_ENUM\r\n linkText?: boolean\r\n}) {\r\n const handleClick = (event: React.MouseEvent) => {\r\n event.preventDefault()\r\n if (link) {\r\n window.open(link.Url, link.Target || '_self')\r\n }\r\n }\r\n\r\n return (\r\n handleClick(e)}\r\n >\r\n {imageUrl && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
{heading}
\r\n

{text}

\r\n {linkText && link && (\r\n
\r\n \r\n {link.Name}\r\n \r\n
\r\n )}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default MenuCard\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { useLayoutEffect, useRef, useState } from 'react'\r\n\r\nfunction DropDown({\r\n items,\r\n selectedItem,\r\n handleSelect,\r\n ref,\r\n}: {\r\n items: any[]\r\n selectedItem: any\r\n handleSelect?: Function\r\n ref?: any\r\n}) {\r\n const [open, setOpen] = useState(false)\r\n const [modalLeftPosition, setModalLeftPosition] = useState(0)\r\n const modalRef = useRef(null)\r\n const menuItemRef = useRef(null)\r\n\r\n const [menuItemRect, setMenuItemRect] = useState({\r\n width: 0,\r\n left: 0,\r\n right: 0,\r\n })\r\n\r\n useLayoutEffect(() => {\r\n if (modalRef.current) {\r\n const modalRect = modalRef.current.getBoundingClientRect()\r\n\r\n const margin =\r\n window.innerWidth > 1440 ? (window.innerWidth - 1440) / 2 : 0\r\n\r\n const menuItemRightRef = window.innerWidth - menuItemRect.right\r\n\r\n const modalSize = modalRect.width / 2\r\n\r\n const modalLeft =\r\n menuItemRect.left - modalSize + menuItemRect.width / 2 - margin\r\n\r\n if (menuItemRightRef < modalSize) {\r\n setModalLeftPosition(menuItemRect.right - modalRect.width)\r\n } else if (modalLeft < 0) {\r\n setModalLeftPosition(10)\r\n } else {\r\n setModalLeftPosition(modalLeft)\r\n }\r\n }\r\n }, [open])\r\n\r\n const handleOpen = () => {\r\n setOpen(!open)\r\n if (open) {\r\n setMenuItemRect({\r\n width: 0,\r\n left: 0,\r\n right: 0,\r\n })\r\n setModalLeftPosition(0)\r\n } else if (menuItemRef.current) {\r\n setMenuItemRect(menuItemRef.current.getBoundingClientRect())\r\n }\r\n }\r\n\r\n const handleClick = (item) => {\r\n if (handleSelect) {\r\n handleSelect(item)\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {\r\n handleOpen()\r\n }}\r\n >\r\n
\r\n {selectedItem.Name}\r\n \r\n \r\n \r\n
\r\n \r\n\r\n {open && (\r\n \r\n
    \r\n {items.map((item) => (\r\n handleClick(item)}\r\n className=\" px-4 py-[13px] border-b-[1px] border-separators-grey last:border-b-white hover:bg-engineering-grey-4 \"\r\n >\r\n
    \r\n {item.Name}\r\n {item === selectedItem && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n ))}\r\n
\r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default DropDown\r\n","import React, { useEffect, useState } from 'react'\r\nimport DropDown from '../../sharedComponents/DropDown'\r\nimport { ILanguageContent } from '../../models'\r\n\r\nfunction MenuLang({ languageItems }: { languageItems: ILanguageContent[] }) {\r\n const [language, setLanguage] = useState(languageItems[0])\r\n\r\n useEffect(() => {\r\n const route = location.pathname\r\n languageItems.forEach((item) => {\r\n if (route.includes(item.Url)) {\r\n setLanguage(item)\r\n }\r\n })\r\n }, [])\r\n\r\n const handleSelect = (language: ILanguageContent) => {\r\n window.location.href = language.Url\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default MenuLang\r\n","import React from 'react'\r\nimport { ILink } from '../../models'\r\n\r\nfunction MenuLinkList({ subLinks }: { subLinks: ILink[] }) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default MenuLinkList\r\n","import React, { useEffect, useState, useId } from 'react'\r\n\r\nimport MenuCard from './MenuCard'\r\nimport { ISearchContent, ILanguageContent, LINK_STYLE_ENUM } from '../../models'\r\n\r\nfunction MenuSearch({\r\n searchContent,\r\n languageItems,\r\n onOpen,\r\n}: {\r\n searchContent: ISearchContent\r\n languageItems: ILanguageContent[]\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n onOpen?: Function\r\n}) {\r\n const [open, setOpen] = useState(false)\r\n const [searchPath, setSearchPath] = useState('')\r\n const [searchText, setSearchText] = useState('')\r\n\r\n const formId = useId()\r\n\r\n useEffect(() => {\r\n const route = location.pathname\r\n const origin = location.origin\r\n languageItems.forEach((item) => {\r\n if (route.includes(item.Url)) {\r\n setSearchPath(origin + item.Url + '/search')\r\n } else {\r\n setSearchPath(origin + '/search')\r\n }\r\n })\r\n }, [])\r\n\r\n const onSubmit = (e) => {\r\n e.preventDefault()\r\n if (searchText.length > 0)\r\n window.open(`${searchPath}?q=${searchText}`, '_self')\r\n }\r\n\r\n const handleOpen = (status: boolean) => {\r\n const scrollWidth = window.innerWidth - document.documentElement.clientWidth\r\n const body = document.body\r\n const searchBtn = document.getElementById('searchBtn')\r\n\r\n if (status) {\r\n body.classList.add('overflow-y-hidden')\r\n body.style.paddingRight = `${scrollWidth}px`\r\n if (searchBtn && window.innerWidth < 1440 && window.innerWidth >= 1024) {\r\n searchBtn.style.marginRight = `${scrollWidth}px`\r\n }\r\n } else {\r\n if (searchBtn && window.innerWidth < 1440 && window.innerWidth >= 1024) {\r\n searchBtn.style.marginRight = '0'\r\n }\r\n body.style.paddingRight = '0'\r\n body.classList.remove('overflow-y-hidden')\r\n }\r\n\r\n setOpen(status)\r\n\r\n if (onOpen) {\r\n onOpen(status)\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n {\r\n !open && handleOpen(true)\r\n }}\r\n form={formId}\r\n type={open ? 'submit' : 'button'}\r\n >\r\n\r\n {open && (\r\n <>\r\n
\r\n
\r\n\r\n \r\n \r\n onSubmit(e)}\r\n >\r\n setSearchText(e.target.value)}\r\n />\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n

{searchContent.PopularSearchTitle}

\r\n
\r\n {searchContent.PopularSearchTerms.map((term) => (\r\n
\r\n \r\n {term}\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n \r\n {searchContent.ChallengeHighlights.map(\r\n (challengeHighlight) => (\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MenuSearch\r\n","import * as React from 'react'\r\nimport { ITabMenu } from '../../models'\r\nimport MenuCard from './MenuCard'\r\nimport MenuLinkList from './MenuLinkList'\r\n\r\nexport function SubNavigationDesk({ tabs }: { tabs: ITabMenu[] }) {\r\n const [menuTabSelected, setMenuTabSelected] = React.useState(\r\n tabs[0]\r\n )\r\n\r\n const onHandleMenuTab = (\r\n event: React.MouseEvent,\r\n tab: ITabMenu\r\n ) => {\r\n event.preventDefault()\r\n setMenuTabSelected(tab)\r\n }\r\n return (\r\n
\r\n
\r\n
    \r\n {tabs.map((tab) => (\r\n onHandleMenuTab(e, tab)}\r\n >\r\n
    \r\n \r\n {tab.LinkLabel}\r\n \r\n
    \r\n \r\n ))}\r\n
\r\n
\r\n
\r\n {menuTabSelected &&\r\n menuTabSelected.Items.map((item) => {\r\n if ('Heading' in item) {\r\n return (\r\n \r\n )\r\n }\r\n if ('LinkList' in item && item.LinkList?.length > 0) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n })}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SubNavigationDesk\r\n","import React, { useLayoutEffect, useRef, useState } from 'react'\r\nimport { ILanguageContent, IMenuItem, ISearchContent } from '../../models'\r\nimport MenuCard from './MenuCard'\r\nimport MenuLang from './MenuLang'\r\nimport MenuLinkList from './MenuLinkList'\r\nimport MenuSearch from './MenuSearch'\r\nimport SubNavigationDesk from './SubNavigationDesk'\r\n\r\nfunction MenuDesktop({\r\n menuItems,\r\n languageItems,\r\n searchContent,\r\n}: {\r\n menuItems: IMenuItem[]\r\n languageItems: ILanguageContent[]\r\n searchContent: ISearchContent\r\n}) {\r\n const [modalLeftPosition, setModalLeftPosition] = useState(0)\r\n const modalRef = useRef(null)\r\n const [selectedItem, setSelectedItem] = useState(null)\r\n const [menuItemRect, setMenuItemRect] = useState({\r\n width: 0,\r\n left: 0,\r\n right: 0,\r\n })\r\n\r\n const handleMouseEnter = (item: IMenuItem, { left, right, width }) => {\r\n setSelectedItem(item)\r\n\r\n setMenuItemRect({ width, right, left })\r\n }\r\n\r\n const handleMouseLeave = () => {\r\n setSelectedItem(null)\r\n }\r\n\r\n useLayoutEffect(() => {\r\n if (modalRef.current) {\r\n const modalRect = modalRef.current.getBoundingClientRect()\r\n const contentSize = window.innerWidth > 1440 ? 1440 : window.innerWidth\r\n\r\n const margin =\r\n window.innerWidth > 1440 ? (window.innerWidth - 1440) / 2 : 0\r\n\r\n const menuItemRightRef = window.innerWidth - menuItemRect.right - margin\r\n\r\n const modalSize = modalRect.width / 2\r\n\r\n const modalLeft =\r\n menuItemRect.left - modalSize + menuItemRect.width / 2 - margin\r\n\r\n if (menuItemRightRef < modalSize) {\r\n setModalLeftPosition(contentSize - modalRect.width - 25)\r\n } else if (modalLeft < 0) {\r\n setModalLeftPosition(10)\r\n } else {\r\n setModalLeftPosition(modalLeft)\r\n }\r\n }\r\n }, [selectedItem])\r\n\r\n const onMenuClick = (\r\n event: React.MouseEvent,\r\n IsDirectLink: boolean,\r\n url: string\r\n ) => {\r\n event.preventDefault()\r\n if (IsDirectLink) {\r\n window.open(url, '_self')\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {menuItems.map((menuItem, index) => (\r\n
\r\n \r\n onMenuClick(e, menuItem.IsDirectLink, menuItem.LinkUrl)\r\n }\r\n onMouseEnter={(event) =>\r\n handleMouseEnter(\r\n menuItem,\r\n (event.target as HTMLElement).getBoundingClientRect()\r\n )\r\n }\r\n >\r\n {menuItem.MenuTitle}\r\n \r\n \r\n {selectedItem === menuItem && !selectedItem.IsDirectLink && (\r\n handleMouseLeave()}\r\n ref={modalRef}\r\n style={{\r\n left: modalLeftPosition,\r\n boxShadow: '0px 5px 20px 0px rgba(0, 0, 0, 0.25)',\r\n }}\r\n >\r\n {selectedItem.LeftSide && (\r\n \r\n {(selectedItem.LeftSide.Heading ||\r\n selectedItem.LeftSide.Text) && (\r\n \r\n )}\r\n {selectedItem.LeftSide.SubLinks.length > 0 && (\r\n \r\n )}\r\n
\r\n )}\r\n {selectedItem.RightSide && (\r\n
\r\n
\r\n {selectedItem.RightSide.map((element) => {\r\n if ('Heading' in element) {\r\n return (\r\n \r\n )\r\n }\r\n if (\r\n 'LinkList' in element &&\r\n element.LinkList?.length > 0\r\n ) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n if ('Tabs' in element && element.Tabs?.length > 0) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n })}\r\n
\r\n {selectedItem.InfoBox && (\r\n
\r\n
\r\n

\r\n {selectedItem.InfoBox.Heading}\r\n

\r\n\r\n

\r\n {selectedItem.InfoBox.Teaser}\r\n

\r\n
\r\n
\r\n \r\n {selectedItem.InfoBox.Link.Name}\r\n \r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MenuDesktop\r\n","import * as React from 'react'\r\nimport { ITabMenu } from '../../models'\r\nimport MenuCard from './MenuCard'\r\nimport MenuLinkList from './MenuLinkList'\r\n\r\nexport function SubNavigationMobile({ tabs }: { tabs: ITabMenu[] }) {\r\n const [menuTabSelected, setMenuTabSelected] = React.useState(\r\n null\r\n )\r\n\r\n const onHandleMenuTab = (\r\n event: React.MouseEvent,\r\n tab: ITabMenu\r\n ) => {\r\n event.preventDefault()\r\n if (menuTabSelected?.LinkLabel === tab.LinkLabel) {\r\n setMenuTabSelected(null)\r\n return\r\n }\r\n setMenuTabSelected(tab)\r\n }\r\n return (\r\n
\r\n
\r\n
    \r\n {tabs.map((tab) => (\r\n <>\r\n onHandleMenuTab(e, tab)}\r\n >\r\n {tab.LinkLabel}\r\n \r\n \r\n {menuTabSelected &&\r\n menuTabSelected.LinkLabel === tab.LinkLabel &&\r\n menuTabSelected.Items.map((item) => {\r\n if ('Heading' in item) {\r\n return (\r\n \r\n )\r\n }\r\n if ('LinkList' in item && item.LinkList?.length > 0) {\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n })}\r\n
\r\n \r\n ))}\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default SubNavigationMobile\r\n","import React, { useState } from 'react'\r\nimport MenuCard from './MenuCard'\r\nimport MenuLinkList from './MenuLinkList'\r\nimport MenuLang from './MenuLang'\r\nimport MenuSearch from './MenuSearch'\r\nimport { IMenuItem, ILanguageContent, ISearchContent } from '../../models'\r\nimport SubNavigationMobile from './SubNavigationMobile'\r\nimport SubNavigationDesk from './SubNavigationDesk'\r\n\r\nfunction MenuMobile({\r\n menuItems,\r\n languageItems,\r\n searchContent,\r\n}: {\r\n menuItems: IMenuItem[]\r\n languageItems: ILanguageContent[]\r\n searchContent: ISearchContent\r\n}) {\r\n const [isOpen, setIsOpen] = useState(false)\r\n\r\n const [selectedItem, setSelectedItem] = useState<{\r\n [key: number]: IMenuItem | undefined\r\n }>({})\r\n\r\n const genericHamburgerLine = `h-[2px] w-8 my-1 rounded-full bg-black transition ease transform duration-300`\r\n\r\n const handleOpen = (status: boolean) => {\r\n const body = document.body\r\n setIsOpen(status)\r\n if (status) {\r\n body.style.overflowY = 'hidden'\r\n } else {\r\n body.style.overflowY = ''\r\n }\r\n }\r\n\r\n const handleSelectItem = (menuItem: IMenuItem, index: number) => {\r\n if (menuItem.IsDirectLink) {\r\n window.open(menuItem.LinkUrl, '_self')\r\n return\r\n }\r\n\r\n if (selectedItem[index]) {\r\n const newSelectedItem = selectedItem\r\n delete newSelectedItem[index]\r\n setSelectedItem((previous) => ({ ...previous, [index]: undefined }))\r\n\r\n return\r\n }\r\n setSelectedItem((previous) => ({ ...previous, [index]: menuItem }))\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n if (status) handleOpen(false)\r\n }}\r\n />\r\n \r\n \r\n handleOpen(!isOpen)}\r\n >\r\n \r\n
\r\n \r\n \r\n\r\n \r\n {isOpen && (\r\n \r\n \r\n \r\n \r\n
\r\n {menuItems.map((menuItem, index) => (\r\n \r\n handleSelectItem(menuItem, index)}\r\n >\r\n {menuItem.IsDirectLink && (\r\n \r\n {menuItem.MenuTitle}\r\n \r\n )}\r\n {!menuItem.IsDirectLink && (\r\n \r\n {menuItem.MenuTitle}\r\n \r\n )}\r\n \r\n
\r\n \r\n {selectedItem[index] !== undefined &&\r\n !selectedItem[index]?.IsDirectLink && (\r\n \r\n {selectedItem[index]?.LeftSide && (\r\n \r\n {(selectedItem[index]?.LeftSide.Heading ||\r\n selectedItem[index]?.LeftSide.Text) && (\r\n \r\n )}\r\n\r\n {selectedItem[index]!.LeftSide.SubLinks.length >\r\n 0 && (\r\n \r\n )}\r\n
\r\n )}\r\n {selectedItem[index]?.RightSide && (\r\n
\r\n \r\n {selectedItem[index]?.RightSide.map(\r\n (element) => {\r\n if ('Heading' in element) {\r\n return (\r\n \r\n )\r\n }\r\n if (\r\n 'LinkList' in element &&\r\n element.LinkList?.length > 0\r\n ) {\r\n return (\r\n \r\n )\r\n }\r\n if (\r\n 'Tabs' in element &&\r\n element.Tabs?.length > 0\r\n ) {\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )\r\n }\r\n }\r\n )}\r\n
\r\n {selectedItem[index]?.InfoBox && (\r\n
\r\n
\r\n

\r\n \r\n {selectedItem[index]?.InfoBox?.Heading}\r\n \r\n

\r\n

\r\n {selectedItem[index]?.InfoBox?.Teaser}\r\n

\r\n
\r\n
\r\n \r\n {selectedItem[index]?.InfoBox?.Link.Name}\r\n \r\n
\r\n
\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MenuMobile\r\n","import React, { useEffect, useState } from 'react'\nimport MenuDesktop from './components/MenuDesktop'\nimport MenuMobile from './components/MenuMobile'\nimport { IHeaderContent, DEVICES_EUM } from '../models'\n\nfunction Menu({ content }: { content: IHeaderContent }) {\n const [device, setDevice] = useState(null)\n\n const checkDevice = () => {\n const screenSize = window.innerWidth\n if (screenSize < 1440) {\n setDevice(DEVICES_EUM.MOBILE)\n } else {\n setDevice(DEVICES_EUM.DESKTOP)\n }\n }\n useEffect(() => {\n window.scroll()\n checkDevice()\n window.addEventListener('resize', checkDevice)\n return () => window.removeEventListener('resize', checkDevice)\n }, [])\n\n return (\n \n )\n}\n\nexport default Menu\n"],"names":["LINK_STYLE_ENUM","DEVICES_EUM","MenuCard","heading","text","imageUrl","link","linkStyle","linkText","handleClick","event","jsxs","e","jsx","DropDown","items","selectedItem","handleSelect","ref","open","setOpen","useState","modalLeftPosition","setModalLeftPosition","modalRef","useRef","menuItemRef","menuItemRect","setMenuItemRect","useLayoutEffect","modalRect","margin","menuItemRightRef","modalSize","modalLeft","handleOpen","item","MenuLang","languageItems","language","setLanguage","useEffect","route","MenuLinkList","subLinks","subLink","MenuSearch","searchContent","onOpen","searchPath","setSearchPath","searchText","setSearchText","formId","useId","origin","onSubmit","status","scrollWidth","body","searchBtn","Fragment","term","challengeHighlight","SubNavigationDesk","tabs","menuTabSelected","setMenuTabSelected","React.useState","onHandleMenuTab","tab","_a","MenuDesktop","menuItems","setSelectedItem","handleMouseEnter","left","right","width","handleMouseLeave","contentSize","onMenuClick","IsDirectLink","url","menuItem","index","element","_b","SubNavigationMobile","MenuMobile","isOpen","setIsOpen","genericHamburgerLine","handleSelectItem","newSelectedItem","previous","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_o","_n","_s","_r","_u","_t","_w","_v","Menu","content","device","setDevice","checkDevice"],"mappings":"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"}