innovationDriveApp/node_modules/reactstrap/lib/DropdownMenu.js
2018-07-08 19:21:40 +10:00

87 lines
No EOL
2.6 KiB
JavaScript

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _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; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _reactPopper = require('react-popper');
var _utils = require('./utils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var propTypes = {
tag: _propTypes2.default.string,
children: _propTypes2.default.node.isRequired,
right: _propTypes2.default.bool,
flip: _propTypes2.default.bool,
className: _propTypes2.default.string,
cssModule: _propTypes2.default.object
};
var defaultProps = {
tag: 'div',
flip: true
};
var contextTypes = {
isOpen: _propTypes2.default.bool.isRequired,
dropup: _propTypes2.default.bool.isRequired
};
var noFlipModifier = { flip: { enabled: false } };
var DropdownMenu = function DropdownMenu(props, context) {
var className = props.className,
cssModule = props.cssModule,
right = props.right,
tag = props.tag,
flip = props.flip,
attrs = _objectWithoutProperties(props, ['className', 'cssModule', 'right', 'tag', 'flip']);
var classes = (0, _utils.mapToCssModules)((0, _classnames2.default)(className, 'dropdown-menu', {
'dropdown-menu-right': right,
show: context.isOpen
}), cssModule);
var Tag = tag;
if (context.isOpen) {
Tag = _reactPopper.Popper;
var position1 = context.dropup ? 'top' : 'bottom';
var position2 = right ? 'end' : 'start';
attrs.placement = position1 + '-' + position2;
attrs.component = tag;
attrs.modifiers = !flip ? noFlipModifier : undefined;
}
return _react2.default.createElement(Tag, _extends({
tabIndex: '-1',
role: 'menu'
}, attrs, {
'aria-hidden': !context.isOpen,
className: classes
}));
};
DropdownMenu.propTypes = propTypes;
DropdownMenu.defaultProps = defaultProps;
DropdownMenu.contextTypes = contextTypes;
exports.default = DropdownMenu;