'use strict';

exports.__esModule = 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; };

require('./style.scss');

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _propTypes = require('prop-types');

var _propTypes2 = _interopRequireDefault(_propTypes);

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 Method = function Method(_ref) {
  var type = _ref.type,
      width = _ref.width,
      className = _ref.className,
      attrs = _objectWithoutProperties(_ref, ['type', 'width', 'className']);

  return _react2.default.createElement(
    'span',
    _extends({}, attrs, { className: ['Method Method_' + type, className || ''].join(' '), style: { width: width } }),
    type === 'options' ? 'optns' : type
  );
};

Method.propTypes = process.env.NODE_ENV !== "production" ? {
  className: _propTypes2.default.string,
  type: _propTypes2.default.oneOf(['basic', 'delete', 'fn', 'get', 'link', 'options', 'patch', 'post', 'put']).isRequired,
  width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string])
} : {};

Method.defaultProps = {
  width: 'auto'
};

exports.default = Method;
module.exports = exports['default'];