{"ast":null,"code":"var __jsx = React.createElement;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\"; // nodejs library that concatenates classes\n\nimport classNames from \"classnames\"; // nodejs library to set properties for components\n\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport MenuList from \"@material-ui/core/MenuList\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Grow from \"@material-ui/core/Grow\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Icon from \"@material-ui/core/Icon\";\nimport Popper from \"@material-ui/core/Popper\"; // core components\n\nimport Button from \"components/CustomButtons/Button.js\";\nimport styles from \"assets/jss/nextjs-material-kit/components/customDropdownStyle.js\";\nconst useStyles = makeStyles(styles);\nexport default function CustomDropdown(props) {\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const handleClick = event => {\n if (anchorEl && anchorEl.contains(event.target)) {\n setAnchorEl(null);\n } else {\n setAnchorEl(event.currentTarget);\n }\n };\n\n const handleClose = param => {\n setAnchorEl(null);\n\n if (props && props.onClick) {\n props.onClick(param);\n }\n };\n\n const handleCloseAway = event => {\n if (anchorEl.contains(event.target)) {\n return;\n }\n\n setAnchorEl(null);\n };\n\n const classes = useStyles();\n const {\n buttonText,\n buttonIcon,\n dropdownList,\n buttonProps,\n dropup,\n dropdownHeader,\n caret,\n hoverColor,\n left,\n rtlActive,\n noLiPadding,\n navDropdown\n } = props;\n const caretClasses = classNames({\n [classes.caret]: true,\n [classes.caretActive]: Boolean(anchorEl),\n [classes.caretRTL]: rtlActive\n });\n const dropdownItem = classNames({\n [classes.dropdownItem]: true,\n [classes[hoverColor + \"Hover\"]]: true,\n [classes.noLiPadding]: noLiPadding,\n [classes.dropdownItemRTL]: rtlActive\n });\n let icon = null;\n\n switch (typeof buttonIcon) {\n case \"object\":\n icon = __jsx(props.buttonIcon, {\n className: classes.buttonIcon\n });\n break;\n\n case \"string\":\n icon = __jsx(Icon, {\n className: classes.buttonIcon\n }, props.buttonIcon);\n break;\n\n default:\n icon = null;\n break;\n }\n\n return __jsx(\"div\", null, __jsx(\"div\", null, __jsx(Button, _extends({\n \"aria-label\": \"Notifications\",\n \"aria-owns\": anchorEl ? \"menu-list\" : null,\n \"aria-haspopup\": \"true\"\n }, buttonProps, {\n onClick: handleClick\n }), icon, buttonText !== undefined ? buttonText : null, caret ? __jsx(\"b\", {\n className: caretClasses\n }) : null)), __jsx(Popper, {\n open: Boolean(anchorEl),\n anchorEl: anchorEl,\n transition: true,\n disablePortal: true,\n placement: dropup ? left ? \"top-start\" : \"top\" : left ? \"bottom-start\" : \"bottom\",\n className: classNames({\n [classes.popperClose]: !anchorEl,\n [classes.popperResponsive]: true,\n [classes.pooperNav]: Boolean(anchorEl) && navDropdown\n })\n }, () => __jsx(Grow, {\n in: Boolean(anchorEl),\n id: \"menu-list\",\n style: dropup ? {\n transformOrigin: \"0 100% 0\"\n } : {\n transformOrigin: \"0 0 0\"\n }\n }, __jsx(Paper, {\n className: classes.dropdown\n }, __jsx(ClickAwayListener, {\n onClickAway: handleCloseAway\n }, __jsx(MenuList, {\n role: \"menu\",\n className: classes.menuList\n }, dropdownHeader !== undefined ? __jsx(MenuItem, {\n onClick: () => handleClose(dropdownHeader),\n className: classes.dropdownHeader\n }, dropdownHeader) : null, dropdownList.map((prop, key) => {\n if (prop.divider) {\n return __jsx(Divider, {\n key: key,\n onClick: () => handleClose(\"divider\"),\n className: classes.dropdownDividerItem\n });\n }\n\n return __jsx(MenuItem, {\n key: key,\n onClick: () => handleClose(prop),\n className: dropdownItem\n }, prop);\n })))))));\n}\nCustomDropdown.defaultProps = {\n caret: true,\n hoverColor: \"primary\"\n};","map":null,"metadata":{},"sourceType":"module"}