import { STYLE_LIST, OSS_INFO_LIST } from './static'

const props = {
  // 是否禁用
  disabled: Boolean,
  // 自定义上传
  customUpload: Function,
  // 读取图片之前
  beforeRead: Function,
  // 上传图片之前
  beforeUpload: Function,
  // 图片体积超过设定大小
  oversize: Function,
  // 图片张数超过设定大小
  overAmount: Function,
  // 手动处理文件
  handleFile: Function,
  // 上传图片的接受类型
  accept: {
    type: String,
    default: 'image/*',
  },
  // input 的 capture 属性
  capture: {
    type: String,
    default: null,
  },
  // 图片的最大尺寸
  maxSize: {
    type: Number,
    default: Number.MAX_VALUE,
  },
  // 图片最多张数
  maxAmount: {
    type: Number,
    default: 9,
  },
  // 上传后oss后，图片的保存路径
  fileDir: {
    type: String,
    default: 'bxs_ui_uploader',
  },
  // 图片列表
  images: {
    type: Array,
    default() {
      return []
    },
    validator(images) {
      let flag = true
      images.forEach(image => {
        if (typeof image !== 'object') {
          flag = false
        }
      })
      return flag
    },
  },
  listStyle: {
    type: String,
    default: null,
    validator(value) {
      const style = STYLE_LIST.find(item => item === value)
      return !(value && !style)
    },
  },
  errorMessage: {
    type: String,
    default: null,
  },
  isDev: {
    type: Boolean,
    default: null,
  },
  timeout: {
    type: Number,
    default: 0,
  },
  ossType: {
    type: Number,
    default: 1,
    validator(value) {
      if (!value) {
        return false
      }
      const info = OSS_INFO_LIST.find(item => item.type === value)
      return !!info
    },
  },
}
export default props
