'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
var React = require('react');

function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }

var React__default = /*#__PURE__*/_interopDefault(React);

var _excluded = ["items", "index", "autoscroll", "onIndexChange"],
  _excluded2 = ["label"];
/**
 * @deprecated
 * Используйте Tabs, TabItem, указав параметры index, itemIndex, onIndexChange
 *
 * Функция для создания `TabController`, которая дает возможность
 * кастомизировать стили, при этом сохраняя единый интерфейс и функционал.
 */
function createTabsController(ListComponent, ItemComponent) {
  // eslint-disable-next-line prefer-arrow-callback
  return /*#__PURE__*/React.forwardRef(function TabsController(_ref, ref) {
    var items = _ref.items,
      index = _ref.index,
      onIndexChange = _ref.onIndexChange,
      rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
    var disabled = rest.disabled;
    return /*#__PURE__*/React__default.default.createElement(ListComponent, _rollupPluginBabelHelpers.extends({
      ref: ref,
      index: index
    }, rest), items.map(function (_ref2, i) {
      var label = _ref2.label,
        restItem = _rollupPluginBabelHelpers.objectWithoutProperties(_ref2, _excluded2);
      return /*#__PURE__*/React__default.default.createElement(ItemComponent, _rollupPluginBabelHelpers.extends({
        key: i,
        selected: i === index,
        itemIndex: i,
        onIndexChange: onIndexChange,
        tabIndex: !disabled && i === index ? 0 : -1,
        disabled: disabled
      }, restItem), label);
    }));
  });
}

exports.createTabsController = createTabsController;
