"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.cssSupport = cssSupport;
exports.errorLog = errorLog;
exports.escapeHtml = escapeHtml;
exports.getApiUrl = getApiUrl;
exports.getPreAndNextMonthDate = exports.getPointYearMonthWeeksRange = exports.getLoginUserInfo = exports.getFileSize = void 0;
exports.getTenantInfo = getTenantInfo;
exports.getUploadMaxSize = getUploadMaxSize;
exports.toTree = exports.isTencentHr = exports.isLocal = exports.isFeishu = exports.isDingDing = void 0;

var _cloneDeep = _interopRequireDefault(require("clone-deep"));

var _request = require("./request");

var _bsGlobal = require("./bs-global");

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

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }

function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }

function cssSupport(attr, value) {
  var element = document.createElement("div");

  if (attr in element.style) {
    element.style[attr] = value;
    return element.style[attr] === value;
  }

  return false;
}

function getUploadMaxSize() {
  var info = (0, _bsGlobal.getBSGlobal)("tenantInfo");
  if (info.Id === 352728) return 150;
  var isDingDing = info.Source === 861;
  var isDingZhi = window.dingZhiSize && window.dingZhiSize.indexOf(info.Id) !== -1;
  if (isDingDing) return 20;
  if (isDingZhi) return 100;
  return 50;
}

function getApiUrl(url) {
  var _getTenantInfo;

  var uid = (0, _bsGlobal.getUserInfo)().Id;
  var tid = (_getTenantInfo = getTenantInfo()) === null || _getTenantInfo === void 0 ? void 0 : _getTenantInfo.Id;
  var apiServer = (0, _bsGlobal.getBSGlobal)("apiPath");
  return "".concat(apiServer, "/api/v1/").concat(tid, "/").concat(uid, "/").concat(url);
}

function getTenantInfo() {
  return (0, _bsGlobal.getBSGlobal)("tenantInfo");
}

var isDingDing = function isDingDing() {
  var _getTenantInfo2;

  return ((_getTenantInfo2 = getTenantInfo()) === null || _getTenantInfo2 === void 0 ? void 0 : _getTenantInfo2.Source) === 861;
};

exports.isDingDing = isDingDing;

var isFeishu = function isFeishu() {
  var _getTenantInfo3;

  return ((_getTenantInfo3 = getTenantInfo()) === null || _getTenantInfo3 === void 0 ? void 0 : _getTenantInfo3.Source) === 862;
};

exports.isFeishu = isFeishu;

var isLocal = function isLocal() {
  var _getTenantInfo4;

  return !!((_getTenantInfo4 = getTenantInfo()) !== null && _getTenantInfo4 !== void 0 && _getTenantInfo4.isLocal);
};

exports.isLocal = isLocal;

var isTencentHr = function isTencentHr() {
  var _getTenantInfo5;

  return ((_getTenantInfo5 = getTenantInfo()) === null || _getTenantInfo5 === void 0 ? void 0 : _getTenantInfo5.Source) === 964;
};

exports.isTencentHr = isTencentHr;

function escapeHtml(str) {
  var htmlEscapes = {
    "&amp;": "&",
    "&lt;": "<",
    "&gt;": ">",
    "&quot;": "\"",
    "&#x27;": "'"
  };
  return str.replace(/(&amp;|&lt;|&gt;|&quot;|&#x27;)/g, function (s) {
    return htmlEscapes[s];
  });
}

var getLoginUserInfo = function getLoginUserInfo() {
  return (0, _bsGlobal.getBSGlobal)("loginUserInfo");
};

exports.getLoginUserInfo = getLoginUserInfo;

var getPreAndNextMonthDate = function getPreAndNextMonthDate() {
  var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();
  var culPreDate = new Date(date);
  var culNextDate = new Date(date);
  var preDate = [];
  var nextDate = []; // 获取前置天数

  culPreDate.setDate(1);
  var preRemainDays = culPreDate.getDay() === 0 ? 6 : culPreDate.getDay() - 1;
  culPreDate.setDate(0);

  while (preRemainDays > 0) {
    // +1是因为上个月有5天到这个月，月末30号 则为 30-4, 30-3, 30-2, 30-1, 30-0五天
    preDate.push(culPreDate.getDate() - preRemainDays + 1);
    preRemainDays--;
  } // 获取后置天数


  culNextDate.setMonth(culNextDate.getMonth() + 1);
  culNextDate.setDate(0);
  var lastDateDay = Math.abs(culNextDate.getDay() - 7);

  if (lastDateDay !== 7) {
    while (lastDateDay >= 1) {
      nextDate.unshift(lastDateDay);
      lastDateDay--;
    }
  }

  return {
    preDate: preDate,
    nextDate: nextDate
  };
}; // 根据年月，计算这个月周的范围


exports.getPreAndNextMonthDate = getPreAndNextMonthDate;

var getPointYearMonthWeeksRange = function getPointYearMonthWeeksRange(year, month) {
  var startDate = new Date("".concat(year, "/").concat(month, "/1"));
  var calDays = new Date(startDate.valueOf());
  calDays.setMonth(calDays.getMonth() + 1);
  calDays.setDate(0);
  var days = calDays.getDate();
  var dayNum = 1 * 24 * 60 * 60 * 1000;
  var result = [];

  for (var i = 0; i < days; i++) {
    var date = new Date(startDate.valueOf() + i * dayNum);

    if (date.getDay() === 1) {
      var endDate = new Date(date.valueOf() + 6 * dayNum);
      result.push({
        startTime: "".concat(date.getMonth() + 1 >= 10 ? date.getMonth() + 1 : "0".concat(date.getMonth() + 1), "/").concat(date.getDate() >= 10 ? date.getDate() : "0".concat(date.getDate())),
        endTime: "".concat(endDate.getMonth() + 1 >= 10 ? endDate.getMonth() + 1 : "0".concat(endDate.getMonth() + 1), "/").concat(endDate.getDate() >= 10 ? endDate.getDate() : "0".concat(endDate.getDate()))
      });
      i += 6;
    }
  }

  return result;
}; // 扁平数据转换为树


exports.getPointYearMonthWeeksRange = getPointYearMonthWeeksRange;

var toTree = function toTree(data) {
  var cloneData = (0, _cloneDeep["default"])(data);
  var map = {};
  var res = [];
  cloneData.forEach(function (item) {
    return map[item.id] = item;
  });
  cloneData.forEach(function (item) {
    var parent = map[item.parentId];

    if (parent) {
      if (!parent.children) parent.children = [];
      parent.children.push(item);
    } else {
      res.push(item);
    }
  });
  return res;
};

exports.toTree = toTree;

function errorLog() {
  return _errorLog.apply(this, arguments);
}

function _errorLog() {
  _errorLog = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
    var errorType,
        content,
        _args = arguments;
    return regeneratorRuntime.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            errorType = _args.length > 0 && _args[0] !== undefined ? _args[0] : 0;
            content = _args.length > 1 ? _args[1] : undefined;
            return _context.abrupt("return", (0, _request.rpost)("v1")("log/error", {
              errorType: errorType,
              content: content
            }));

          case 3:
          case "end":
            return _context.stop();
        }
      }
    }, _callee);
  }));
  return _errorLog.apply(this, arguments);
}

var getFileSize = function getFileSize(fileSize) {
  if (!fileSize) return '';

  if (fileSize < 1024) {
    return "".concat(fileSize, "B");
  }

  if (fileSize < 1024 * 1024) {
    var _temp = fileSize / 1024;

    _temp = Number(_temp.toFixed(2));
    return "".concat(_temp, "KB");
  }

  if (fileSize < 1024 * 1024 * 1024) {
    var _temp2 = fileSize / (1024 * 1024);

    _temp2 = Number(_temp2.toFixed(2));
    return "".concat(_temp2, "M");
  }

  var temp = fileSize / (1024 * 1024 * 1024);
  temp = Number(temp.toFixed(2));
  return "".concat(temp, "GB");
};

exports.getFileSize = getFileSize;