"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.DropdownDataTids = exports.Dropdown = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _react = _interopRequireDefault(require("react"));

var _filterProps = require("../../lib/filterProps");
var _MenuHeader = require("../MenuHeader");
var _MenuItem = require("../MenuItem");
var _MenuSeparator = require("../MenuSeparator");
var _Select = require("../Select");



var _CommonWrapper = require("../../internal/CommonWrapper");

var _rootNode = require("../../lib/rootNode");
var _ThemeContext = require("../../lib/theming/ThemeContext");



var _getDropdownTheme = require("./getDropdownTheme");var _excluded = ["caption", "icon"];var _class, _Dropdown;

var PASS_PROPS = {
  _renderButton: true,
  error: true,
  disabled: true,
  disablePortal: true,
  menuAlign: true,
  menuWidth: true,
  maxMenuHeight: true,
  use: true,
  size: true,
  warning: true,
  width: true,
  onOpen: true,
  onClose: true,
  onMouseEnter: true,
  onMouseLeave: true,
  onMouseOver: true,
  menuPos: true,
  corners: true,
  id: true,
  'aria-describedby': true,
  'aria-label': true
};





































































var DropdownDataTids = exports.DropdownDataTids = {
  root: 'Dropdown__root'
};

/**
 * Выпадающее меню `Dropdown`. Содержит несколько команд, объединенных по смыслу.
 *
 * Используйте кнопку-меню:
 * * когда не хватает места для нескольких кнопок.
 * * когда названия действий очень длинные.
 * * когда действия редко используются или объединены по смыслу.
 *
 * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом Select.
 */var

Dropdown = exports.Dropdown = (0, _rootNode.rootNode)(_class = (_Dropdown = /*#__PURE__*/function (_React$Component) {function Dropdown() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.























    renderMain = function () {
      var _this$props = _this.props,caption = _this$props.caption,icon = _this$props.icon,rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);
      var items = _react.default.Children.map(_this.props.children, function (item) {return item;}) || [];

      return /*#__PURE__*/(
        _react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this.setRootNode }, rest), /*#__PURE__*/
        _react.default.createElement(_Select.Select, (0, _extends2.default)({
          "data-tid": DropdownDataTids.root,
          ref: _this._refSelect },
        (0, _filterProps.filterProps)(rest, PASS_PROPS), {
          value: caption,
          items: items,
          _icon: icon,
          renderValue: renderValue })
        )
        ));

    };_this.



















    _refSelect = function (element) {
      _this._select = element;
    };return _this;}(0, _inheritsLoose2.default)(Dropdown, _React$Component);var _proto = Dropdown.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = (0, _getDropdownTheme.getDropdownTheme)(theme);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, _this2.renderMain());});}; /**
   * @public
   */_proto.open = function open() {if (this._select) {this._select.open();}} /**
   * @public
   */;_proto.close = function close() {if (this._select) {this._select.close();}};return Dropdown;}(_react.default.Component), _Dropdown.__KONTUR_REACT_UI__ = 'Dropdown', _Dropdown.displayName = 'Dropdown', _Dropdown.Header = _MenuHeader.MenuHeader, _Dropdown.MenuItem = _MenuItem.MenuItem, _Dropdown.Separator = _MenuSeparator.MenuSeparator, _Dropdown)) || _class;function renderValue(value) {return value;
}