選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

1 行
5.4 KiB

  1. {"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __jsx = React.createElement;\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\";\nvar useStyles = makeStyles(styles);\nexport default function CustomDropdown(props) {\n var _classNames, _classNames2, _classNames3;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n anchorEl = _React$useState2[0],\n setAnchorEl = _React$useState2[1];\n\n var handleClick = function handleClick(event) {\n if (anchorEl && anchorEl.contains(event.target)) {\n setAnchorEl(null);\n } else {\n setAnchorEl(event.currentTarget);\n }\n };\n\n var handleClose = function handleClose(param) {\n setAnchorEl(null);\n\n if (props && props.onClick) {\n props.onClick(param);\n }\n };\n\n var handleCloseAway = function handleCloseAway(event) {\n if (anchorEl.contains(event.target)) {\n return;\n }\n\n setAnchorEl(null);\n };\n\n var classes = useStyles();\n var buttonText = props.buttonText,\n buttonIcon = props.buttonIcon,\n dropdownList = props.dropdownList,\n buttonProps = props.buttonProps,\n dropup = props.dropup,\n dropdownHeader = props.dropdownHeader,\n caret = props.caret,\n hoverColor = props.hoverColor,\n left = props.left,\n rtlActive = props.rtlActive,\n noLiPadding = props.noLiPadding,\n navDropdown = props.navDropdown;\n var caretClasses = classNames((_classNames = {}, _defineProperty(_classNames, classes.caret, true), _defineProperty(_classNames, classes.caretActive, Boolean(anchorEl)), _defineProperty(_classNames, classes.caretRTL, rtlActive), _classNames));\n var dropdownItem = classNames((_classNames2 = {}, _defineProperty(_classNames2, classes.dropdownItem, true), _defineProperty(_classNames2, classes[hoverColor + \"Hover\"], true), _defineProperty(_classNames2, classes.noLiPadding, noLiPadding), _defineProperty(_classNames2, classes.dropdownItemRTL, rtlActive), _classNames2));\n var 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((_classNames3 = {}, _defineProperty(_classNames3, classes.popperClose, !anchorEl), _defineProperty(_classNames3, classes.popperResponsive, true), _defineProperty(_classNames3, classes.pooperNav, Boolean(anchorEl) && navDropdown), _classNames3))\n }, function () {\n return __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: function onClick() {\n return handleClose(dropdownHeader);\n },\n className: classes.dropdownHeader\n }, dropdownHeader) : null, dropdownList.map(function (prop, key) {\n if (prop.divider) {\n return __jsx(Divider, {\n key: key,\n onClick: function onClick() {\n return handleClose(\"divider\");\n },\n className: classes.dropdownDividerItem\n });\n }\n\n return __jsx(MenuItem, {\n key: key,\n onClick: function onClick() {\n return handleClose(prop);\n },\n className: dropdownItem\n }, prop);\n })))));\n }));\n}\nCustomDropdown.defaultProps = {\n caret: true,\n hoverColor: \"primary\"\n};","map":null,"metadata":{},"sourceType":"module"}