"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = GroupSkeleton;

var _react = _interopRequireDefault(require("react"));

var _getCompliedClassName3 = _interopRequireDefault(require("../../utils/getCompliedClassName"));

var _getCompliedCustomId = _interopRequireDefault(require("../../utils/getCompliedCustomId"));

var _Seperator = _interopRequireDefault(require("./Seperator"));

var _GroupModule = _interopRequireDefault(require("./Group.module.css"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function GroupSkeleton(props) {
  var _getCompliedClassName, _getCompliedClassName2;

  var tagName = props.tagName,
      children = props.children,
      direction = props.direction,
      align = props.align,
      gap = props.gap,
      seperator = props.seperator,
      seperatorTagName = props.seperatorTagName,
      customClassName = props.customClassName,
      customId = props.customId,
      wrap = props.wrap,
      tagAttributeProps = props.tagAttributeProps;
  var classes = (0, _getCompliedClassName3["default"])(customClassName, (_getCompliedClassName = {}, _defineProperty(_getCompliedClassName, _GroupModule["default"].base, true), _defineProperty(_getCompliedClassName, _GroupModule["default"][direction], !!direction), _defineProperty(_getCompliedClassName, _GroupModule["default"][align], !!align), _defineProperty(_getCompliedClassName, _GroupModule["default"][gap], !!gap), _defineProperty(_getCompliedClassName, _GroupModule["default"][wrap], !!wrap), _getCompliedClassName), (_getCompliedClassName2 = {}, _defineProperty(_getCompliedClassName2, customClassName.base, !!customClassName.base), _defineProperty(_getCompliedClassName2, customClassName.direction, !!customClassName.direction), _defineProperty(_getCompliedClassName2, customClassName.align, !!customClassName.align), _defineProperty(_getCompliedClassName2, customClassName.gap, !!customClassName.gap), _defineProperty(_getCompliedClassName2, customClassName.wrap, !!customClassName.wrap), _getCompliedClassName2));
  var nodes = [];

  if (seperator) {
    for (var index = 0; index < children.length - 1; index++) {
      var element = children[index];
      nodes.push(children[index]);
      nodes.push( /*#__PURE__*/_react["default"].createElement(_Seperator["default"], {
        seperator: seperator,
        tagName: seperatorTagName,
        key: "seperator".concat(index)
      }));
    }

    nodes.push(children[children.length - 1]);
  } else {
    nodes = children;
  }

  return /*#__PURE__*/_react["default"].createElement(tagName, _objectSpread(_objectSpread({
    className: classes,
    "data-id": (0, _getCompliedCustomId["default"])(props, customId.group)
  }, tagAttributeProps), {}, {
    children: nodes
  }));
}