"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.isMenuHeader = exports.MenuHeaderDataTids = exports.MenuHeader = void 0;var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = _interopRequireWildcard(require("react"));

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

var _CommonWrapper = require("../../internal/CommonWrapper");
var _Emotion = require("../../lib/theming/Emotion");

var _MenuContext = require("../../internal/Menu/MenuContext");
var _forwardRefAndName = require("../../lib/forwardRefAndName");

var _MenuHeader = require("./MenuHeader.styles");var _excluded = ["id", "_enableIconPadding", "children", "size"];












var MenuHeaderDataTids = exports.MenuHeaderDataTids = {
  root: 'MenuHeader__root'
};

/**
 * Заголовок меню `MenuHeader` используется для того, чтобы разделить элементы меню на категории в рамках одного меню.
 *
 * `MenuHeader`, в отличие от `MenuItem` нельзя затаргетить с клавиатуры.
 *
 * Сущности в которых может быть использован `MenuHeader`: DropdownMenu, Kebab, TooltipMenu и Select.
 */

var MenuHeader = exports.MenuHeader = (0, _forwardRefAndName.forwardRefAndName)(
  'MenuHeader',
  function MenuHeader(_ref,

  ref)
  {var _cx;var id = _ref.id,_ref$_enableIconPaddi = _ref._enableIconPadding,_enableIconPadding = _ref$_enableIconPaddi === void 0 ? false : _ref$_enableIconPaddi,children = _ref.children,_ref$size = _ref.size,size = _ref$size === void 0 ? 'small' : _ref$size,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
    var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
    var menuContext = (0, _react.useContext)(_MenuContext.MenuContext);

    function getRootSizeClassName() {
      switch (size) {
        case 'large':
          return _MenuHeader.styles.rootLarge(theme);
        case 'medium':
          return _MenuHeader.styles.rootMedium(theme);
        case 'small':
        default:
          return _MenuHeader.styles.rootSmall(theme);
      }
    }
    function getWithLeftPaddingSizeClassName() {
      switch (size) {
        case 'large':
          return _MenuHeader.styles.withLeftPaddingSmall(theme);
        case 'medium':
          return _MenuHeader.styles.withLeftPaddingMedium(theme);
        case 'small':
        default:
          return _MenuHeader.styles.withLeftPaddingSmall(theme);
      }
    }

    return /*#__PURE__*/(
      _react.default.createElement(_CommonWrapper.CommonWrapper, rest, /*#__PURE__*/
      _react.default.createElement("div", {
        ref: ref,
        id: id,
        "data-tid": MenuHeaderDataTids.root,
        className: (0, _Emotion.cx)(getRootSizeClassName(), (_cx = {}, _cx[
        _MenuHeader.styles.root(theme)] = true, _cx[
        getWithLeftPaddingSizeClassName()] = menuContext.enableIconPadding || _enableIconPadding, _cx)
        ) },

      children
      )
      ));

  }
);

//@ts-ignore
MenuHeader.__MENU_HEADER__ = true;



var isMenuHeader = exports.isMenuHeader = function isMenuHeader(child) {
  return /*#__PURE__*/_react.default.isValidElement(child) ?
  Object.prototype.hasOwnProperty.call(child.type, '__MENU_HEADER__') :
  false;
};