Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  7. var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
  8. var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
  9. var _react = _interopRequireDefault(require("react"));
  10. var _propTypes = _interopRequireDefault(require("prop-types"));
  11. var _classnames = _interopRequireDefault(require("classnames"));
  12. var _utils = require("./utils");
  13. var propTypes = {
  14. children: _propTypes.default.node,
  15. active: _propTypes.default.bool,
  16. disabled: _propTypes.default.bool,
  17. divider: _propTypes.default.bool,
  18. tag: _utils.tagPropType,
  19. header: _propTypes.default.bool,
  20. onClick: _propTypes.default.func,
  21. className: _propTypes.default.string,
  22. cssModule: _propTypes.default.object,
  23. toggle: _propTypes.default.bool
  24. };
  25. var contextTypes = {
  26. toggle: _propTypes.default.func
  27. };
  28. var defaultProps = {
  29. tag: 'button',
  30. toggle: true
  31. };
  32. var DropdownItem =
  33. /*#__PURE__*/
  34. function (_React$Component) {
  35. (0, _inheritsLoose2.default)(DropdownItem, _React$Component);
  36. function DropdownItem(props) {
  37. var _this;
  38. _this = _React$Component.call(this, props) || this;
  39. _this.onClick = _this.onClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
  40. _this.getTabIndex = _this.getTabIndex.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
  41. return _this;
  42. }
  43. var _proto = DropdownItem.prototype;
  44. _proto.onClick = function onClick(e) {
  45. if (this.props.disabled || this.props.header || this.props.divider) {
  46. e.preventDefault();
  47. return;
  48. }
  49. if (this.props.onClick) {
  50. this.props.onClick(e);
  51. }
  52. if (this.props.toggle) {
  53. this.context.toggle(e);
  54. }
  55. };
  56. _proto.getTabIndex = function getTabIndex() {
  57. if (this.props.disabled || this.props.header || this.props.divider) {
  58. return '-1';
  59. }
  60. return '0';
  61. };
  62. _proto.render = function render() {
  63. var tabIndex = this.getTabIndex();
  64. var role = tabIndex > -1 ? 'menuitem' : undefined;
  65. var _omit = (0, _utils.omit)(this.props, ['toggle']),
  66. className = _omit.className,
  67. cssModule = _omit.cssModule,
  68. divider = _omit.divider,
  69. Tag = _omit.tag,
  70. header = _omit.header,
  71. active = _omit.active,
  72. props = (0, _objectWithoutPropertiesLoose2.default)(_omit, ["className", "cssModule", "divider", "tag", "header", "active"]);
  73. var classes = (0, _utils.mapToCssModules)((0, _classnames.default)(className, {
  74. disabled: props.disabled,
  75. 'dropdown-item': !divider && !header,
  76. active: active,
  77. 'dropdown-header': header,
  78. 'dropdown-divider': divider
  79. }), cssModule);
  80. if (Tag === 'button') {
  81. if (header) {
  82. Tag = 'h6';
  83. } else if (divider) {
  84. Tag = 'div';
  85. } else if (props.href) {
  86. Tag = 'a';
  87. }
  88. }
  89. return _react.default.createElement(Tag, (0, _extends2.default)({
  90. type: Tag === 'button' && (props.onClick || this.props.toggle) ? 'button' : undefined
  91. }, props, {
  92. tabIndex: tabIndex,
  93. role: role,
  94. className: classes,
  95. onClick: this.onClick
  96. }));
  97. };
  98. return DropdownItem;
  99. }(_react.default.Component);
  100. DropdownItem.propTypes = propTypes;
  101. DropdownItem.defaultProps = defaultProps;
  102. DropdownItem.contextTypes = contextTypes;
  103. var _default = DropdownItem;
  104. exports.default = _default;