"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.AccAdd = AccAdd;
exports.AccMul = AccMul;
exports.ReCalibratePrecision = ReCalibratePrecision;
exports.RoundWeight = RoundWeight;

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 RoundWeight(value) {
  var _value = Number(value);

  if (Number.isInteger(_value)) {
    return _value.toFixed(0);
  }

  if (_value >= 99.96) {
    return 100;
  }

  return _value.toFixed(1);
}
/**
 *
 * @description 收集一组含有权重的数据，如果找到其中一个权重有小数点，那么全都是小数点后一位，否则就全是整数
 * @export
 * @param {any[]} milepostData
 * @returns any[]
 */


function ReCalibratePrecision(milepostData) {
  // NOTE 后端返回的数据不一定是整数
  var index = milepostData.findIndex(function (_ref) {
    var krWeight = _ref.krWeight;
    return !Number.isInteger(Number(krWeight));
  });

  if (index !== -1) {
    return milepostData.map(function (data) {
      return _objectSpread(_objectSpread({}, data), {}, {
        krWeight: Number(data.krWeight).toFixed(1)
      });
    });
  }

  return milepostData;
}

function AccAdd(arg1, arg2) {
  var r1;
  var r2;
  var m;
  var c;

  try {
    r1 = arg1.toString().split(".")[1].length;
  } catch (e) {
    r1 = 0;
  }

  try {
    r2 = arg2.toString().split(".")[1].length;
  } catch (e) {
    r2 = 0;
  }

  c = Math.abs(r1 - r2);
  m = Math.pow(10, Math.max(r1, r2));

  if (c > 0) {
    var cm = Math.pow(10, c);

    if (r1 > r2) {
      arg1 = Number(arg1.toString().replace(".", ""));
      arg2 = Number(arg2.toString().replace(".", "")) * cm;
    } else {
      arg1 = Number(arg1.toString().replace(".", "")) * cm;
      arg2 = Number(arg2.toString().replace(".", ""));
    }
  } else {
    arg1 = Number(arg1.toString().replace(".", ""));
    arg2 = Number(arg2.toString().replace(".", ""));
  }

  return (arg1 + arg2) / m;
}

function AccMul(arg1, arg2) {
  var m = 0;
  var s1 = arg1.toString();
  var s2 = arg2.toString();

  try {
    m += s1.split(".")[1].length;
  } catch (e) {}

  try {
    m += s2.split(".")[1].length;
  } catch (e) {}

  return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
}