{"version":3,"file":"validate2.mjs","sources":["../../../../../../../../packages/components/file/src/utils/validate.ts"],"sourcesContent":["import { type FileActionUploadProps } from '../components/FileActionUpload/types'\nimport { type FileTableProps } from '../components/FileTable'\nimport {\n  type FileActionUploadApiResponseRecord,\n  type FileTypeSelectApiResponseRecord,\n} from '../typings'\n\n// 文件名是否通过空白字符校验\nexport function validateUploadFileEmptyName(name: string) {\n  if (!name || !name.trim() || !name.includes('.')) return false\n\n  const fileName = name.split('.')[0]\n  return fileName && fileName.trim() !== '' ? true : false\n}\n\n// 文件名是否通过非法字符校验\nexport function validateUploadFileName(\n  name: string,\n  nameRegExp: FileActionUploadProps['nameRegExp']\n) {\n  return !nameRegExp.test(name) ? true : false\n}\n\n// 文件是否通过类型校验\nexport function validateUploadFileExt(name: string, accept: FileActionUploadProps['accept']) {\n  const exts = accept.split(',')\n  return exts.some((ext) => name.endsWith(ext)) ? true : false\n}\n\n// 文件是否通过大小校验\nexport function validateUploadFileSize(file: any, sizeRange: FileActionUploadProps['sizeRange']) {\n  const [minSize, maxSize] = sizeRange\n\n  let minSizeValidateResult = true\n  let maxSizeValidateResult = true\n\n  if (minSize) {\n    if (file.size >= minSize) {\n      minSizeValidateResult = true\n    } else {\n      minSizeValidateResult = false\n    }\n  }\n\n  if (maxSize) {\n    if (file.size <= maxSize) {\n      maxSizeValidateResult = true\n    } else {\n      maxSizeValidateResult = false\n    }\n  }\n\n  return minSizeValidateResult && maxSizeValidateResult ? true : false\n}\n\n// 文件是否通过最大数量校验\nexport function validateUploadFileMaxCount(\n  fileCount: number,\n  maxCount: FileActionUploadProps['maxCount']\n) {\n  return fileCount <= maxCount ? true : false\n}\n\n// 上传时 typecode 校验\nexport function validateUploadFileTypeCode(\n  typeCode: FileActionUploadProps['apiParams']['typeCode']\n) {\n  return typeCode ? true : false\n}\n\n// 判断文件是本地(上传/自己造的dataSource)还是来源于接口\nexport function validateFileFromLocal(row?: FileActionUploadApiResponseRecord) {\n  return row && !row.businessId && !row.businessKey\n}\n\n// 判断 versionlist 中数据是否有从接口来的数据\nexport function validateVersionCachesHasApiFile(cache?: FileActionUploadApiResponseRecord[]) {\n  if (!cache) return\n\n  return !!cache.find((c) => !validateFileFromLocal(c))\n}\n\n// 判断 versionlist 中数据是否有从本地上传的数据\nexport function validateVersionCachesHasLocalFile(cache?: FileActionUploadApiResponseRecord[]) {\n  if (!cache) return\n\n  return !!cache.find((c) => validateFileFromLocal(c))\n}\n\n// 判断 datasource 是否为 actualids 字符串数组\nexport function validateDataSourceIsStringArray(dataSource: FileTableProps['dataSource']) {\n  return (\n    dataSource && Array.isArray(dataSource) && dataSource[0] && typeof dataSource[0] === 'string'\n  )\n}\n\n// 判断 datasource 是否为 actualids 对象数组\nexport function validateDataSourceIsObjectArray(\n  dataSource: FileTableProps['dataSource'],\n  key = 'versionList'\n) {\n  return (\n    dataSource &&\n    Array.isArray(dataSource) &&\n    dataSource[0] &&\n    typeof dataSource[0] !== 'string' &&\n    Reflect.has(dataSource[0], key)\n  )\n}\n\n// 判断 datasource 是否为 actualids 数据结构\nexport function validateDataSourceIsActualIdsData(\n  dataSource: FileTableProps['dataSource'],\n  key = 'versionList'\n) {\n  return (\n    validateDataSourceIsStringArray(dataSource) || validateDataSourceIsObjectArray(dataSource, key)\n  )\n}\n"],"names":[],"mappings":"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"}