"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var React = _interopRequireWildcard(require("react"));

var _one = require("remax/one");

var _classnames = _interopRequireDefault(require("classnames"));

var _icon = _interopRequireDefault(require("../icon"));

var _common = require("./../common");

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

function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

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; }

var prefixCls = (0, _common.getPrefixCls)('steps');

var Steps = function Steps(props) {
  var _a, _b;

  var _props$direction = props.direction,
      direction = _props$direction === void 0 ? 'horizontal' : _props$direction,
      _props$current = props.current,
      current = _props$current === void 0 ? 0 : _props$current,
      steps = props.steps,
      status = props.status;
  var statusIconType = status === 'error' ? 'roundclosefill' : 'roundcheckfill';
  var statusIconColor = status === 'error' ? '#f5222d' : '#1890FF';

  var getTitle = function getTitle(item, index) {
    if (index === current) {
      if (status === 'error') {
        return item.errorTitle || item.title;
      }
    }

    return item.title;
  };

  if (direction === 'vertical') {
    return /*#__PURE__*/React.createElement(_one.View, {
      className: prefixCls
    }, (_b = (_a = steps === null || steps === void 0 ? void 0 : steps.reverse) === null || _a === void 0 ? void 0 : _a.call(steps)) === null || _b === void 0 ? void 0 : _b.map(function (item, index) {
      return /*#__PURE__*/React.createElement(_one.View, {
        key: index,
        className: "".concat(prefixCls, "-step")
      }, index === (steps === null || steps === void 0 ? void 0 : steps.length) - 1 ? null : index < current ? /*#__PURE__*/React.createElement(_one.View, {
        className: "".concat(prefixCls, "-line-ahead")
      }) : /*#__PURE__*/React.createElement(_one.View, {
        className: "".concat(prefixCls, "-line")
      }), index === current ? /*#__PURE__*/React.createElement(_one.View, {
        className: "".concat(prefixCls, "-circle_current")
      }, /*#__PURE__*/React.createElement(_one.Text, {
        className: "".concat(prefixCls, "-circle_current-icon")
      }, /*#__PURE__*/React.createElement(_icon.default, {
        type: statusIconType,
        color: statusIconColor
      }))) : null, index < current ? /*#__PURE__*/React.createElement(_one.View, {
        className: "".concat(prefixCls, "-circle-ahead")
      }) : null, index > current ? /*#__PURE__*/React.createElement(_one.View, {
        className: "".concat(prefixCls, "-circle")
      }) : null, /*#__PURE__*/React.createElement(_one.View, {
        className: "".concat(prefixCls, "-step-header")
      }, /*#__PURE__*/React.createElement(_one.View, {
        className: "".concat(prefixCls, "-step-header-title")
      }, getTitle(item, index)), /*#__PURE__*/React.createElement(_one.View, {
        className: "".concat(prefixCls, "-step-header-extra")
      }, item.extra)), /*#__PURE__*/React.createElement(_one.View, {
        className: "".concat(prefixCls, "-step-description")
      }, item.description));
    }));
  }

  return /*#__PURE__*/React.createElement(_one.View, {
    className: "".concat(prefixCls, "_horizontal")
  }, steps === null || steps === void 0 ? void 0 : steps.map(function (item, index) {
    var _classNames;

    return /*#__PURE__*/React.createElement(_one.View, {
      key: index,
      className: (0, _classnames.default)((_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "_horizontal-step"), true), _defineProperty(_classNames, "".concat(prefixCls, "_horizontal-step-finish"), index <= current - 1), _classNames))
    }, /*#__PURE__*/React.createElement(_one.View, {
      className: "".concat(prefixCls, "_horizontal-step-container")
    }, /*#__PURE__*/React.createElement(_one.View, {
      className: "".concat(prefixCls, "_horizontal-step-container-icon")
    }, index < current ? /*#__PURE__*/React.createElement(_icon.default, {
      type: "roundcheckfill",
      color: "#1890FF",
      size: 28
    }) : null, index === current ? /*#__PURE__*/React.createElement(_icon.default, {
      type: statusIconType,
      color: statusIconColor,
      size: 28
    }) : null, index > current ? /*#__PURE__*/React.createElement(_one.View, {
      className: "".concat(prefixCls, "_horizontal-step-container-icon-default")
    }, /*#__PURE__*/React.createElement(_one.View, null)) : null), /*#__PURE__*/React.createElement(_one.View, {
      className: "".concat(prefixCls, "_horizontal-step-container-content")
    }, /*#__PURE__*/React.createElement(_one.View, {
      className: "".concat(prefixCls, "_horizontal-step-container-content-title")
    }, getTitle(item, index)))));
  }));
};

var _default = Steps;
exports.default = _default;