"use strict";

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

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

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

var _drawerManager = _interopRequireDefault(require("../../../drawer-manager"));

var _context = require("../../context");

var _searchKeyHandle = _interopRequireDefault(require("../../../search-key-handle"));

var _header = _interopRequireDefault(require("../components/header"));

var _title = _interopRequireDefault(require("../../components/title"));

var _percent = _interopRequireDefault(require("../../components/percent"));

var _objStatus = _interopRequireDefault(require("../../components/obj-status"));

var _constant = require("../../constant");

var _getLocale = require("../../../../utils/getLocale");

var _utils = require("./utils");

var _conditionRender = _interopRequireDefault(require("../../../condition-render"));

var _tooltip = _interopRequireDefault(require("../../../tooltip"));

var _tools = require("../../../../utils/tools");

require("./index.css");

var _excluded = ["data"];

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 _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }

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

var prefix = 'titaui-dynamic-progress-item';

var DynamicProgress = function DynamicProgress(_ref) {
  var data = _ref.data,
      restProps = _objectWithoutProperties(_ref, _excluded);

  var progress = data.progress,
      progressDescription = data.progressDescription,
      progressDescriptionRichText = data.progressDescriptionRichText,
      progressGrow = data.progressGrow,
      riskLevel = data.riskLevel,
      obj = data.obj,
      relationParentName = data.relationParentName,
      relationParentId = data.relationParentId,
      publishUser = data.publishUser;

  var _useContext = (0, _react.useContext)(_context.SearchKeyContext),
      searchKeyWord = _useContext.searchKeyWord;

  var handleClickTitle = function handleClickTitle() {
    if (!obj) {
      return;
    }

    var objType = obj.objType,
        objId = obj.objId;

    if (objType === _constant.EObjType.Kr) {
      _drawerManager["default"].open('krDetail', {
        krId: objId
      });
    } else if (objType === _constant.EObjType.O) {
      _drawerManager["default"].open('okrDetail', {
        okrId: objId
      });
    } else if (objType === _constant.EObjType.Task) {
      window.Talent.app.vent.trigger('global-pull-screen', objId, 'task');
    } else if (objType === _constant.EObjType.Project) {
      window.open(window.location.href.replace(window.location.hash, "#work?iTalentNavCode=tita-work&work_id=".concat(objId)));
    }
  };

  var handleClickOTitle = function handleClickOTitle() {
    _drawerManager["default"].open('okrDetail', {
      okrId: relationParentId
    });
  };

  var renderDesc = (0, _react.useMemo)(function () {
    var dom;

    if (obj && obj.objType === _constant.EObjType.Kr) {
      dom = /*#__PURE__*/_react["default"].createElement("span", {
        className: "".concat(prefix, "__obj-wrapper")
      }, (0, _getLocale.getLocale)('Mod_Updated'), (0, _getLocale.getLocale)('Mod_Objective'), /*#__PURE__*/_react["default"].createElement("span", {
        className: "".concat(prefix, "__object-name"),
        onClick: handleClickOTitle
      }, /*#__PURE__*/_react["default"].createElement(_tooltip["default"].Text, {
        text: /*#__PURE__*/_react["default"].createElement(_searchKeyHandle["default"], {
          str: (0, _tools.htmlDecodeByRegExp)(relationParentName),
          keyWord: searchKeyWord
        }),
        isPercent: true
      })), (0, _getLocale.getLocale)('Mod_skeyrprogress'));
    }

    if (obj && obj.objType === _constant.EObjType.O) {
      dom = "".concat((0, _getLocale.getLocale)('Mod_Updated')).concat((0, _getLocale.getLocale)('Mod_objectiveprog'));
    }

    if (obj && obj.objType === _constant.EObjType.Task) {
      dom = "".concat((0, _getLocale.getLocale)('Mod_Updated')).concat((0, _getLocale.getLocale)('Data_Taskprogress'));
    }

    if (obj && obj.objType === _constant.EObjType.Project) {
      dom = "".concat((0, _getLocale.getLocale)('Mod_Updated')).concat((0, _getLocale.getLocale)('Mod_ProjectProgress'));
    }

    return /*#__PURE__*/_react["default"].createElement("span", {
      className: "".concat(prefix, "__operate-desc")
    }, dom);
  }, [searchKeyWord]);
  return /*#__PURE__*/_react["default"].createElement("div", {
    className: prefix
  }, /*#__PURE__*/_react["default"].createElement(_header["default"], _extends({
    data: data
  }, restProps, {
    desc: renderDesc,
    user: publishUser
  })), /*#__PURE__*/_react["default"].createElement("div", {
    className: "".concat(prefix, "__content")
  }, /*#__PURE__*/_react["default"].createElement("div", {
    className: "".concat(prefix, "__title")
  }, /*#__PURE__*/_react["default"].createElement(_title["default"], _extends({
    content: (0, _tools.htmlDecodeByRegExp)(obj === null || obj === void 0 ? void 0 : obj.objName),
    onClickTitle: handleClickTitle
  }, (0, _utils.getDynamicTitleProps)(obj)))), /*#__PURE__*/_react["default"].createElement("div", {
    className: "".concat(prefix, "__status")
  }, /*#__PURE__*/_react["default"].createElement(_conditionRender["default"], {
    condition: obj && obj.objType !== _constant.EObjType.Task && obj.objType !== _constant.EObjType.Project
  }, /*#__PURE__*/_react["default"].createElement(_objStatus["default"], {
    oStatus: 1,
    riskLevel: riskLevel,
    extraClass: "".concat(prefix, "__status-text")
  })), /*#__PURE__*/_react["default"].createElement(_percent["default"], {
    percent: progress,
    growPercent: progressGrow,
    extraClass: "".concat(prefix, "__status-percent")
  })), progressDescriptionRichText && /*#__PURE__*/_react["default"].createElement("div", {
    className: "".concat(prefix, "__description")
  }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "".concat(prefix, "__description-text")
  }, /*#__PURE__*/_react["default"].createElement("span", {
    dangerouslySetInnerHTML: {
      __html: progressDescriptionRichText
    }
  }))))));
};

var _default = DynamicProgress;
exports["default"] = _default;