"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.useModeTableProps = useModeTableProps;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _VirtualTableRepeater = require("../VirtualGridRepeater/VirtualTableRepeater");
var _VirtualGridStateContext = require("../VirtualGridRepeater/VirtualGridStateContext");
var _NestedTableRow = require("./NestedTableRow");
var _useNestedModeColumns = require("./useNestedModeColumns");
var _useFlatModeColumns = require("./useFlatModeColumns");
var _NestedTablePlaceholderStatesRow = require("./NestedTablePlaceholderStatesRow");
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/cairo/dist/cjs/components/NestedTable/useModeTableProps.tsx";
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
function useModeTableProps(props) {
  const {
    state: wrapperState,
    horizontalScroll,
    actionCellWidth,
    actionCellProps,
    dragAndDrop
  } = props;
  const {
    isFlatMode
  } = wrapperState;
  const state = isFlatMode ? wrapperState.flat : wrapperState.nested;
  const key = wrapperState.isFlatMode.toString();
  const BodyElementType = (0, _react.useMemo)(() => ({
    children
  }) => /*#__PURE__*/_react.default.createElement(_VirtualGridStateContext.VirtualGridStateProvider, {
    key: key,
    value: state.virtual,
    __self: this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 48,
      columnNumber: 11
    }
  }, /*#__PURE__*/_react.default.createElement(_VirtualTableRepeater.VirtualTableRepeater, {
    __self: this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 49,
      columnNumber: 13
    }
  }, children)), [state, key]);
  const TrElementType = (0, _react.useMemo)(() => isFlatMode ? undefined : /*#__PURE__*/(0, _react.forwardRef)((props, ref) => props.rowData.item.originalKeyedItem ? /*#__PURE__*/_react.default.createElement(_NestedTableRow.NestedTableRow, (0, _extends2.default)({
    ref: ref
  }, props, {
    item: props.rowData.item,
    dragAndDrop: dragAndDrop,
    __self: this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 72,
      columnNumber: 17
    }
  })) : /*#__PURE__*/_react.default.createElement(_NestedTablePlaceholderStatesRow.NestedTablePlaceholderStatesRow, (0, _extends2.default)({
    ref: ref
  }, props, {
    item: props.rowData.item,
    __self: this,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 79,
      columnNumber: 17
    }
  }))), [isFlatMode, dragAndDrop]);
  const nestedColumns = (0, _useNestedModeColumns.useNestedModeColumns)({
    state: wrapperState,
    horizontalScroll,
    actionCellWidth,
    actionCellProps,
    dragAndDrop
  });
  const flatColumns = (0, _useFlatModeColumns.useFlatModeColumns)({
    state: wrapperState,
    horizontalScroll,
    actionCellWidth,
    actionCellProps
  });
  return {
    state,
    key,
    BodyElementType,
    TrElementType,
    columns: isFlatMode ? flatColumns : nestedColumns
  };
}
//# sourceMappingURL=useModeTableProps.js.map