{"version":3,"file":"dep-6b04876a.mjs","sources":["../../../common/js/upload/utils.ts"],"sourcesContent":["import { SizeUnit } from './types';\nimport log from '../log/log';\n\nexport const IMAGE_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp)/i;\nexport const IMAGE_ALL_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp|.dwg|.dxf|.svf|.tif|.tiff|.arw)/i;\nexport const FILE_PDF_REGEXP = /(.pdf)/i;\nexport const FILE_EXCEL_REGEXP = /(.xlsx|.xls|.csv|.xlc|.xlm|.xlt|.xlw)/i;\nexport const FILE_WORD_REGEXP = /(.dox|docx|.document|.wps|.wdb|.msword)/i;\nexport const FILE_PPT_REGEXP = /(.ppt|.pptx|.key)/i;\nexport const VIDEO_REGEXP = /(.avi|.mp4|.wmv|.mpg|.mpeg|.mov|.rm|.ram|.swf|.flv|.rmvb|.flash|.mid|.3gp)/i;\nexport const AUDIO_REGEXP = /(.mp2|.mp3|.mp4|.ogg|.3gpp|.ac3|.au)/i;\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n */\nconst INPUT_FILE_MAP = {\n  'audio/*': AUDIO_REGEXP,\n  'video/*': VIDEO_REGEXP,\n  'image/*': IMAGE_ALL_REGEXP,\n  '.jpg': /image\\/jpeg|\\.jpg$/i,\n  '.ico': /image\\/vnd.microsoft.icon/i,\n  '.doc': /application\\/msword/i,\n  '.docx': /application\\/vnd.openxmlformats-officedocument.wordprocessingml.document/i,\n  '.xls': /application\\/vnd.ms-excel/i,\n  '.xlsx': /application\\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/i,\n  '.ppt': /application\\/vnd.ms-powerpoint/i,\n  '.pptx': /application\\/vnd.openxmlformats-officedocument.presentationml.presentation/i,\n  '.vsd': /application\\/vnd.visio/i,\n  '.txt': /text\\/plain/i,\n  '.abw': /application\\/x-abiword/i,\n  '.avi': /video\\/x-msvideo/i,\n  '.azw': /application\\/vnd.amazon.ebook/i,\n  '.bin': /application\\/octet-stream/i,\n  '.cda': /application\\/x-cdf/i,\n  '.mpkg': /application\\/vnd.apple.installer+xml/i,\n  '.odp': /application\\/vnd.oasis.opendocument.presentation/i,\n  '.ods': /application\\/vnd.oasis.opendocument.spreadsheet/i,\n  '.odt': /application\\/vnd.oasis.opendocument.text/i,\n  '.oga': /audio\\/ogg/i,\n  '.ogv': /video\\/ogg/i,\n  '.ogx': /application\\/ogg/i,\n  '.ai': /application\\/postscript/i,\n  '.eps': /application\\/postscript/i,\n  '.ps': /application\\/postscript/i,\n};\n\n/**\n * 各个单位和 KB 的关系\n *\n * [*] 表示方法采用这种方式\n * [x] 表示方法不采用这种方式\n *\n * [x] bit      位              b     0 or 1\n * [*] byte     字节            B     8 bits\n * [x] kilobit  千位            kb    1000 bites\n * [*] kilobyte 千字节(二进制)   KB    1024 bytes\n * [x] kilobyte 千字节(十进制)   KB    1000 bytes\n * [x] Megabite 百万位          Mb    1000 kilobits\n * [*] Megabyte 兆字节(二进制)   KB    1024 kilobytes\n * [*] Megabyte 兆字节(十进制)   KB    1000 kilobytes\n * [x] Gigabit  万亿位          Gb    1000 Megabite\n * [*] Gigabyte 吉字节(二进制)   GB    1024 Megabytes\n * [x] Gigabyte 吉字节(十进制)   GB    1000 Megabytes\n */\nexport const SIZE_MAP = {\n  B: 1,\n  KB: 1024,\n  MB: 1048576, // 1024 * 1024\n  GB: 1073741824, // 1024 * 1024 * 1024\n};\n\nexport function returnFileSize(number: number) {\n  if (number < SIZE_MAP.KB) {\n    return `${number} Bytes`;\n  }\n  if (number >= SIZE_MAP.KB && number < SIZE_MAP.MB) {\n    return `${(number / SIZE_MAP.KB).toFixed(1)} KB`;\n  }\n  if (number >= SIZE_MAP.MB && number < SIZE_MAP.GB) {\n    return `${(number / SIZE_MAP.MB).toFixed(1)} MB`;\n  }\n\n  if (number >= SIZE_MAP.GB) {\n    return `${(number / SIZE_MAP.GB).toFixed(1)} GB`;\n  }\n  return '';\n}\n\nexport function getCurrentDate(needTime = false) {\n  const d = new Date();\n  let month: string | number = d.getMonth() + 1;\n  month = month < 10 ? `0${month}` : month;\n  const date = `${d.getFullYear()}-${month}-${d.getDate()}`;\n  const time = `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;\n  if (needTime) return [date, time].join(' ');\n  return date;\n}\n\n/**\n * 缩略文件名 ABCDEFG => ABC...FG\n * @param inputName 文件名\n * @param leftCount 左边长度\n * @param rightCount 右边长度\n * @returns 缩略后的文件名\n */\nexport function abridgeName(inputName: string, leftCount = 5, rightCount = 7): string {\n  const name = inputName;\n  let leftLength = 0;\n  let rightLength = 0;\n  if (!name) return '';\n  for (let i = 0; i < name.length; i++) {\n    const w = name[i];\n    const isCn = escape(w).indexOf('%u') === 0;\n    if (i < leftCount * 2 && leftLength < leftCount) {\n      // eslint-disable-next-line no-unused-expressions\n      isCn ? (leftLength += 1) : (leftLength += 2);\n    } else if (i > i - rightCount && rightLength < rightCount) {\n      // eslint-disable-next-line no-unused-expressions\n      isCn ? (rightLength += 1) : (rightLength += 2);\n    }\n  }\n  return name.replace(new RegExp(`^(.{${leftLength}})(.+)(.{${rightLength}})$`), '$1…$3');\n}\n\nexport function getFileSizeText(number: number) {\n  if (number < 1024) {\n    return `${number} Bytes`;\n  }\n  if (number >= 1024 && number < 1048576) {\n    return `${(number / 1024).toFixed(1)} KB`;\n  }\n  if (number >= 1048576) {\n    return `${(number / 1048576).toFixed(1)} MB`;\n  }\n  return '';\n}\n\n/**\n * 大小比较\n * @param size 文件大小，单位：B\n * @param unit 计算机计量单位\n */\nexport function isOverSizeLimit(fileSize: number, sizeLimit: number, unit: SizeUnit) {\n  const units = ['B', 'KB', 'MB', 'GB'];\n  const KBIndex = 1;\n  let index = units.indexOf(unit);\n  if (index === -1) {\n    log.warn('Upload', `\\`sizeLimit.unit\\` can only be one of ${units.join()}`);\n    index = KBIndex;\n  }\n  const num = SIZE_MAP[unit];\n  return fileSize > sizeLimit * num;\n}\n\n// vue2临时使用的 sizeLimit 计算\nexport function isOverSizeLimit1(fileSize: number, sizeLimit: number, unit: SizeUnit) {\n  // 以 KB 为单位进行比较\n  const units = ['B', 'KB', 'MB', 'GB'];\n  // 各个单位和 KB 的关系\n\n  const KBIndex = 1;\n  let index = units.indexOf(unit);\n  if (index === -1) {\n    // eslint-disable-next-line no-console\n    console.warn(`TDesign Upload Warn: \\`sizeLimit.unit\\` can only be one of ${units.join()}`);\n    index = KBIndex;\n  }\n  const num = SIZE_MAP[unit];\n  const limit = index < KBIndex ? sizeLimit / num : sizeLimit * num;\n  return fileSize <= limit;\n}\n\nexport const urlCreator = () => window.webkitURL || window.URL;\n\nexport function getFileUrlByFileRaw(fileRaw: File): Promise<string> {\n  return new Promise((resolve) => {\n    if (!fileRaw) {\n      resolve('');\n      return;\n    }\n    const reader = new FileReader();\n    reader.readAsDataURL(fileRaw);\n    reader.onload = (event: ProgressEvent<FileReader>) => {\n      resolve(event.target?.result as string);\n    };\n  });\n}\n\nexport function validateFileType(accept: string, fileType: string, fileName?: string) {\n  const tmpFileType = fileType || fileName;\n  if (!accept) return true;\n\n  if (!tmpFileType) return false;\n\n  const acceptList = accept.split(',').map((v) => v.trim());\n  for (let i = 0, len = acceptList.length; i < len; i++) {\n    const oneRule = acceptList[i] as keyof typeof INPUT_FILE_MAP;\n    if (INPUT_FILE_MAP[oneRule] && INPUT_FILE_MAP[oneRule].test(tmpFileType)) {\n      return true;\n    }\n    const regExp = new RegExp(oneRule, 'i');\n    if (regExp.test(tmpFileType)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport function getFileList(files: FileList, accept: string = '') {\n  const fileList: File[] = [];\n  for (let i = 0; i < files.length; i++) {\n    if (validateFileType(accept, files[i].type, files[i].name)) {\n      fileList.push(files[i]);\n    }\n  }\n  return fileList;\n}\n"],"names":["IMAGE_REGEXP","IMAGE_ALL_REGEXP","FILE_PDF_REGEXP","FILE_EXCEL_REGEXP","FILE_WORD_REGEXP","FILE_PPT_REGEXP","VIDEO_REGEXP","AUDIO_REGEXP","INPUT_FILE_MAP","SIZE_MAP","B","KB","MB","GB","returnFileSize","number","concat","toFixed","getCurrentDate","needTime","d","Date","month","getMonth","date","getFullYear","getDate","time","getHours","getMinutes","getSeconds","join","abridgeName","inputName","leftCount","arguments","length","undefined","rightCount","name","leftLength","rightLength","i","w","isCn","escape","indexOf","replace","RegExp","getFileSizeText","isOverSizeLimit","fileSize","sizeLimit","unit","units","KBIndex","index","log","warn","num","isOverSizeLimit1","console","limit","urlCreator","window","webkitURL","URL","getFileUrlByFileRaw","fileRaw","Promise","resolve","reader","FileReader","readAsDataURL","onload","event","_event$target","target","result","validateFileType","accept","fileType","fileName","tmpFileType","acceptList","split","map","v","trim","len","oneRule","test","regExp","getFileList","files","fileList","type","push"],"mappings":"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"}