{"version":3,"sources":["webpack://VA/./src/components/DropDown/DropDown.js","webpack://VA/./src/components/DropDownItem/DropDownItem.js","webpack://VA/./src/components/Icons/CaretRight.js","webpack://VA/./src/components/Icons/Check.js","webpack://VA/./src/components/LanguageItem/LanguageItem.js","webpack://VA/./src/hooks/useMenuItemRenderer.js","webpack://VA/./src/components/Header/MainMenu.js"],"names":["DropDown","forwardRef","_ref","ref","children","_ref$listProps","listProps","props","_objectWithoutPropertiesLoose","_excluded","React","createElement","Root","_extends","List","propTypes","PropTypes","node","isRequired","shape","styled","div","withConfig","displayName","memo","DropDownItem","ListItem","textColor","hoverTextColor","createSvgIcon","Fragment","d","viewBox","LanguageItem","name","label","isDefault","onClick","isDefaultLanguage","isCurrentLanguage","useTranslation","i18n","language","Button","Content","DefaultText","StyledCheckIcon","fill","string","bool","func","DefaultButton","CheckIcon","span","useMenuItemRenderer","network","useStores","executeFunction","useMenuFunctions","t","disabled","isOffline","isSlowConnection","renderLanguageItem","useCallback","item","idx","key","functionName","functionArgs","hasChildren","length","type","MENU_ITEM_ACTION","StyledCaretRightIcon","MENU_ITEM_LANGUAGE","MENU_ITEM_LINK","Link","href","url","target","rel","MENU_ITEM_SPACER","Line","ButtonBase","CaretRightIcon","a","observer","_ref$items","items","useRef","_useTranslation","_React$useState","useState","isOpen","setOpen","_useStores","bot","_useConfig","useConfig","topFaqs","_useConfig$header$tit","header","title","color","iconColor","colors","window","useOnClickOutside","renderMenuItem","filteredItems","forEach","concat","hotTopicsCount","MAIN_MENU_ITEM_GET_HOT_TOPICS","hotTopics","topQuestions","MAIN_MENU_ITEM_GET_TOP_QUESTIONS","push","ControlsItem","IconButton","exists","MenuIcon","sort","b","position","map","main","accent"],"mappings":"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","file":"9.js","sourcesContent":["import PropTypes from 'prop-types';\r\nimport React, { forwardRef, memo } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport List from '../List';\r\n\r\nconst DropDown = forwardRef(function DropDown({ children, listProps = {}, ...props }, ref) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n});\r\n\r\nDropDown.propTypes = {\r\n /**\r\n * Dropdown list items.\r\n */\r\n children: PropTypes.node.isRequired,\r\n /**\r\n * Properties applied to the List component.\r\n */\r\n listProps: PropTypes.shape({})\r\n};\r\n\r\nconst Root = styled.div`\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n width: auto;\r\n padding: 10px 0;\r\n margin: 0;\r\n background-color: #fff;\r\n border-radius: 3px;\r\n box-shadow: 0px 5px 20px 0px rgba(0, 0, 0, 0.1);\r\n transform: translateY(100%);\r\n z-index: 2;\r\n`;\r\n\r\nDropDown.displayName = 'DropDown';\r\n\r\nexport default memo(DropDown);\r\n","import styled from 'styled-components';\r\n\r\nimport ListItem from '../ListItem';\r\n\r\nconst DropDownItem = styled(ListItem)`\r\n list-style-type: none;\r\n line-height: 30px;\r\n white-space: nowrap;\r\n border-bottom: none;\r\n padding: 0;\r\n color: ${props => props.textColor || '#333'};\r\n button:hover,\r\n a:hover {\r\n color: ${props => props.hoverTextColor || '#00416f'};\r\n background-color: #f5f5f5;\r\n }\r\n`;\r\n\r\nexport default DropDownItem;\r\n","import React, { Fragment } from 'react';\r\n\r\nimport createSvgIcon from '../../utilities/createSvgIcon';\r\n\r\nexport default createSvgIcon(\r\n <>\r\n \r\n ,\r\n 'CaretRight',\r\n { viewBox: '0 0 192 512' }\r\n);\r\n","import React, { Fragment } from 'react';\r\n\r\nimport createSvgIcon from '../../utilities/createSvgIcon';\r\n\r\nexport default createSvgIcon(\r\n <>\r\n \r\n ,\r\n 'Check',\r\n { viewBox: '0 0 512 512' }\r\n);\r\n","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styled from 'styled-components';\r\n\r\nimport DefaultButton from '../Button';\r\nimport CheckIcon from '../Icons/Check';\r\n\r\nexport default function LanguageItem({ name, label, isDefault, onClick, ...props }) {\r\n const { i18n } = useTranslation();\r\n const isDefaultLanguage = isDefault;\r\n const isCurrentLanguage = name === i18n.language;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nLanguageItem.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n isDefault: PropTypes.bool.isRequired,\r\n onClick: PropTypes.func.isRequired\r\n};\r\n\r\nconst Button = styled(DefaultButton)`\r\n justify-content: space-between;\r\n width: 100%;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n align-items: center;\r\n & > div {\r\n margin-right: 4px !important;\r\n }\r\n`;\r\n\r\nconst StyledCheckIcon = styled(CheckIcon)`\r\n width: 14px;\r\n height: 14px;\r\n margin-left: 4px;\r\n`;\r\n\r\nconst DefaultText = styled.span`\r\n margin-left: 5px;\r\n color: #9a9a9a;\r\n`;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styled from 'styled-components';\r\n\r\nimport ButtonBase from '../components/ButtonBase';\r\nimport CaretRightIcon from '../components/Icons/CaretRight';\r\nimport LanguageItem from '../components/LanguageItem';\r\nimport { useStores } from '../stores';\r\nimport {\r\n MENU_ITEM_ACTION,\r\n MENU_ITEM_LANGUAGE,\r\n MENU_ITEM_LINK,\r\n MENU_ITEM_SPACER\r\n} from '../utilities';\r\nimport useMenuFunctions from './useMenuFunctions';\r\n\r\nexport default function useMenuItemRenderer() {\r\n const { network } = useStores();\r\n const { executeFunction } = useMenuFunctions();\r\n const { t } = useTranslation();\r\n const disabled = network.isOffline || network.isSlowConnection;\r\n\r\n const renderLanguageItem = React.useCallback(\r\n (item, idx) => (\r\n executeFunction(item.functionName, item.functionArgs)}\r\n disabled={disabled}\r\n />\r\n ),\r\n [disabled, executeFunction]\r\n );\r\n\r\n const renderer = React.useCallback(\r\n (item, idx) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n\r\n switch (item.type) {\r\n case MENU_ITEM_ACTION:\r\n return (\r\n \r\n hasChildren ? null : executeFunction(item.functionName, item.functionArgs)\r\n }\r\n disabled={disabled}\r\n >\r\n {t(item.label)}\r\n {hasChildren && }\r\n \r\n );\r\n case MENU_ITEM_LANGUAGE:\r\n return renderLanguageItem(item, idx);\r\n case MENU_ITEM_LINK:\r\n return (\r\n \r\n {t(item.label)}\r\n \r\n );\r\n case MENU_ITEM_SPACER:\r\n return ;\r\n default:\r\n return null;\r\n }\r\n },\r\n [disabled, executeFunction, renderLanguageItem, t]\r\n );\r\n\r\n return renderer;\r\n}\r\n\r\nconst Button = styled(ButtonBase)`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n padding: 0 30px;\r\n margin: 0;\r\n font-family: inherit;\r\n font-size: inherit;\r\n font-weight: inherit;\r\n line-height: inherit;\r\n white-space: inherit;\r\n text-align: left;\r\n color: inherit;\r\n background-color: transparent;\r\n border: none;\r\n cursor: pointer;\r\n transition: color 0.2s cubic-bezier(0.4, 0, 1, 1);\r\n outline: none;\r\n`;\r\n\r\nconst StyledCaretRightIcon = styled(CaretRightIcon)`\r\n width: 6px;\r\n height: 20px;\r\n fill: inherit;\r\n`;\r\n\r\nconst Link = styled.a`\r\n display: block;\r\n width: 100%;\r\n padding: 0 30px;\r\n font-family: inherit;\r\n font-size: inherit;\r\n font-weight: inherit;\r\n line-height: inherit;\r\n text-align: left;\r\n text-decoration: none;\r\n white-space: inherit;\r\n color: inherit;\r\n transition: color 0.2s cubic-bezier(0.4, 0, 1, 1);\r\n`;\r\n\r\nconst Line = styled.div`\r\n position: relative;\r\n height: 21px;\r\n padding: 0 30px;\r\n width: 100%;\r\n\r\n :after {\r\n content: '';\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n display: block;\r\n width: calc(100% - 60px);\r\n border-bottom: 1px solid #c4d1d8;\r\n transform: translate(-50%, 50%);\r\n }\r\n`;\r\n","import forEach from 'lodash/forEach';\r\nimport { observer } from 'mobx-react-lite';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { useConfig, useMenuItemRenderer, useOnClickOutside } from '../../hooks';\r\nimport { useStores } from '../../stores';\r\nimport { MAIN_MENU_ITEM_GET_HOT_TOPICS, MAIN_MENU_ITEM_GET_TOP_QUESTIONS } from '../../utilities';\r\nimport DropDown from '../DropDown';\r\nimport DropDownItem from '../DropDownItem';\r\nimport IconButton from '../IconButton';\r\nimport MenuIcon from '../Icons/Menu';\r\nimport { ControlsItem } from './Controls';\r\n\r\nconst MainMenu = ({ items = [], ...props }) => {\r\n const ref = React.useRef();\r\n const { i18n, t } = useTranslation();\r\n const [isOpen, setOpen] = React.useState(false);\r\n const { network, bot } = useStores();\r\n const {\r\n topFaqs,\r\n header: {\r\n title: { color, iconColor }\r\n },\r\n window: { colors }\r\n } = useConfig();\r\n useOnClickOutside(ref, () => setOpen(false));\r\n const renderMenuItem = useMenuItemRenderer();\r\n\r\n // filter for HotTopics and Popular Questions\r\n const filteredItems = [];\r\n forEach([...items], item => {\r\n if (item.functionName) {\r\n // Hot Topics\r\n if (\r\n (!topFaqs.hotTopicsCount && item.functionName === MAIN_MENU_ITEM_GET_HOT_TOPICS) ||\r\n (topFaqs.hotTopicsCount &&\r\n !bot.hotTopics.length &&\r\n item.functionName === MAIN_MENU_ITEM_GET_HOT_TOPICS)\r\n ) {\r\n return null;\r\n }\r\n\r\n // Popular Questions\r\n if (!bot.topQuestions.length && item.functionName === MAIN_MENU_ITEM_GET_TOP_QUESTIONS) {\r\n return null;\r\n }\r\n }\r\n filteredItems.push(item);\r\n\r\n return filteredItems;\r\n });\r\n\r\n return (\r\n \r\n setOpen(!isOpen)}\r\n title={i18n.exists('altText.menu') ? t('altText.menu') : ''}\r\n >\r\n \r\n \r\n {isOpen && (\r\n \r\n {filteredItems\r\n .sort((a, b) => a.position - b.position)\r\n .map((item, idx) => (\r\n setOpen(false)}\r\n textColor={colors.main}\r\n hoverTextColor={colors.accent}\r\n >\r\n {renderMenuItem(item, idx)}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default observer(MainMenu);\r\n"],"sourceRoot":""}