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) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
var kmType = ['pdf', 'ppt', 'pptx', 'doc', 'docx']; // 能KM加密的文档格式
var videoType = ['wmv', 'asf', 'asx', 'rm', 'rmvb', 'mp4', '3gp', 'mov', 'm4v', 'avi', 'dat', 'mkv', 'flv', 'vob']; // 能云信加密的视频格式
var audioType = ['wav', 'flac', 'ape', 'alac', 'wv', 'mp3', 'aac', 'ogg', 'vorbis', 'opusdeng']; // 音频格式

// 格式化参数(手动添加uid)
export var formatData = function formatData(data) {
  if (!data) return [];
  return Array.isArray(data) ? data.map(function (item) {
    return item = _objectSpread({
      uid: item.nosKey || item.uid
    }, item);
  }) : [_objectSpread({
    uid: data.nosKey || data.uid
  }, data)];
};

// 获取文件类型
export var getFileType = function getFileType(fileName) {
  var _fileName$split$pop;
  return ((_fileName$split$pop = fileName.split('.').pop()) === null || _fileName$split$pop === void 0 ? void 0 : _fileName$split$pop.toLowerCase()) || '';
};

// 获取加密方式
export var getEncryptType = function getEncryptType(_ref) {
  var fileType = _ref.fileType,
    encrypt = _ref.encrypt,
    kmTransform = _ref.kmTransform;
  // 视频格式，且支持云信加密
  if (videoType.includes(fileType) && encrypt) {
    return 'YX_VIDEO';
  }

  // 音频格式，且支持云信加密
  if (audioType.includes(fileType) && encrypt) {
    return 'YX_AUDIO';
  }

  // 文档格式，且支持KM文档加密
  if (kmType.includes(fileType) && kmTransform) {
    return 'KM';
  }
  return 'NONE';
};