Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DropdownMenu.js 3.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  4. exports.__esModule = true;
  5. exports.default = void 0;
  6. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  7. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  8. var _classnames = _interopRequireDefault(require("classnames"));
  9. var _reactDom = require("react-dom");
  10. var _react = _interopRequireWildcard(require("react"));
  11. var _DropdownMenu = _interopRequireDefault(require("react-overlays/DropdownMenu"));
  12. var _NavbarContext = _interopRequireDefault(require("./NavbarContext"));
  13. var _ThemeProvider = require("./ThemeProvider");
  14. var wrapRef = function wrapRef(props) {
  15. var ref = props.ref;
  16. props.ref = ref.__wrapped || (ref.__wrapped = function (r) {
  17. return ref((0, _reactDom.findDOMNode)(r));
  18. });
  19. return props;
  20. };
  21. var defaultProps = {
  22. alignRight: false,
  23. flip: true
  24. };
  25. var DropdownMenu = _react.default.forwardRef(function (_ref, ref) {
  26. var bsPrefix = _ref.bsPrefix,
  27. className = _ref.className,
  28. alignRight = _ref.alignRight,
  29. rootCloseEvent = _ref.rootCloseEvent,
  30. flip = _ref.flip,
  31. popperConfig = _ref.popperConfig,
  32. showProps = _ref.show,
  33. _ref$as = _ref.as,
  34. Component = _ref$as === void 0 ? 'div' : _ref$as,
  35. props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["bsPrefix", "className", "alignRight", "rootCloseEvent", "flip", "popperConfig", "show", "as"]);
  36. var isNavbar = (0, _react.useContext)(_NavbarContext.default);
  37. var prefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'dropdown-menu');
  38. return _react.default.createElement(_DropdownMenu.default, {
  39. ref: ref // FIXME: the ref situation is out of hand here
  40. ,
  41. flip: flip,
  42. show: showProps,
  43. alignEnd: alignRight,
  44. usePopper: !isNavbar,
  45. popperConfig: popperConfig,
  46. rootCloseEvent: rootCloseEvent
  47. }, function (_ref2) {
  48. var placement = _ref2.placement,
  49. show = _ref2.show,
  50. alignEnd = _ref2.alignEnd,
  51. close = _ref2.close,
  52. menuProps = _ref2.props;
  53. wrapRef(menuProps); // For custom components provide additional, non-DOM, props;
  54. if (typeof Component !== 'string') {
  55. menuProps.show = show;
  56. menuProps.close = close;
  57. menuProps.alignRight = alignEnd;
  58. }
  59. var style = props.style;
  60. if (placement) {
  61. // we don't need the default popper style,
  62. // menus are display: none when not shown.
  63. style = (0, _extends2.default)({}, style, {}, menuProps.style);
  64. props['x-placement'] = placement;
  65. }
  66. return _react.default.createElement(Component, (0, _extends2.default)({}, props, menuProps, {
  67. style: style,
  68. className: (0, _classnames.default)(className, prefix, show && 'show', alignEnd && prefix + "-right")
  69. }));
  70. });
  71. });
  72. DropdownMenu.displayName = 'DropdownMenu';
  73. DropdownMenu.defaultProps = defaultProps;
  74. var _default = DropdownMenu;
  75. exports.default = _default;
  76. module.exports = exports["default"];