var _excluded = ["filters", "dataIndex", "children"];
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(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 _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import React from 'react';
import { renderColumnsTitle } from './columnRender';
import { ProSkeletonRaw as Skeleton } from '../../skeleton';
import { getLanguage } from '@teamix/utils';
import Cell from '../components/Cell';
/**
 * ProColumn => Column
 */
export default function genProColumnToColumn(columns, /** 是否渲染骨架屏 */
showSkeleton, actionRef) {
  var context = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var
  // 用于埋点
  dataTeamixSpm = arguments.length > 4 ? arguments[4] : undefined;
  var bindUrl = arguments.length > 5 ? arguments[5] : undefined;
  var bindUrlProps = arguments.length > 6 ? arguments[6] : undefined;
  return columns.map(function (columnProps) {
    var filters = columnProps.filters,
      dataIndex = columnProps.dataIndex,
      children = columnProps.children,
      others = _objectWithoutProperties(columnProps, _excluded);
    if (showSkeleton) {
      return _objectSpread(_objectSpread({}, others), {}, {
        filters: undefined,
        sortable: false,
        dataIndex: dataIndex === null || dataIndex === void 0 ? void 0 : dataIndex.toString(),
        title: /*#__PURE__*/React.createElement(Skeleton.Table.TH, null),
        cell: function cell(value, rowIndex) {
          var _columnProps$render;
          // 按默认5行做渐变
          var opacity = Math.min(Math.max(1 - rowIndex * 0.2, 0), 1);
          // 如果是field并且有descrition字段，就认为是两行，其他情况默认一行
          return _typeof(columnProps === null || columnProps === void 0 ? void 0 : columnProps.render) === 'object' && (columnProps === null || columnProps === void 0 ? void 0 : (_columnProps$render = columnProps.render) === null || _columnProps$render === void 0 ? void 0 : _columnProps$render.description) ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Skeleton.Table.TD, {
            style: {
              opacity: opacity
            }
          }), /*#__PURE__*/React.createElement(Skeleton.Table.TD, {
            style: {
              opacity: opacity
            }
          })) : /*#__PURE__*/React.createElement(Skeleton.Table.TD, {
            style: {
              opacity: opacity
            }
          });
        }
      });
    }
    return _objectSpread(_objectSpread({
      // 金钱样式默认右对齐
      align: columnProps.valueType === 'money' ? 'right' : 'left',
      wordBreak: getLanguage() === 'en-us' ? 'word' : 'all'
    }, others), {}, {
      children: children ? genProColumnToColumn(children, showSkeleton, actionRef, context) : undefined,
      dataIndex: dataIndex === null || dataIndex === void 0 ? void 0 : dataIndex.toString(),
      title: renderColumnsTitle(columnProps, actionRef, bindUrl, bindUrlProps),
      cell: function cell(value, index, record) {
        return /*#__PURE__*/React.createElement(Cell, {
          value: value,
          item: columnProps,
          index: index,
          record: record,
          actionRef: actionRef,
          context: context,
          dataTeamixSpm: dataTeamixSpm
        });
        // return renderCell(
        //   value,
        //   columnProps,
        //   index,
        //   record,
        //   actionRef,
        //   context,
        //   dataTeamixSpm
        // )
      }
    });
  });
}