import { makeBooleanProp, makeNumberProp, makeRequiredProp, makeStringProp } from '../common/props'

export const qrCodeProps = {
  /** canvas组件id */
  canvasId: makeRequiredProp(String),
  /** 二维码内容 */
  value: makeStringProp(''),
  options: {
    type: Object,
  },
  /** 二维码大小 */
  size: makeNumberProp(200),
  /** 二维码尺寸单位 */
  sizeUnit: makeStringProp('px'),
  /** 导出的文件类型 */
  fileType: makeStringProp('png'),
  /** 是否初始化组件后就开始生成 */
  start: makeBooleanProp(true),
  /** 是否数据发生改变自动重绘 */
  auto: makeBooleanProp(true),
  /** 隐藏组件 */
  hide: makeBooleanProp(false),
  /** canvas 类型，微信小程序默认使用2d，非2d微信官方已放弃维护，问题比较多 */
  type: makeStringProp('2d'),
  /** 队列绘制，主要针对NVue端 */
  queue: makeBooleanProp(false),
  /** 是否队列加载图片，可减少canvas发起的网络资源请求，节省服务器资源 */
  isQueueLoadImage: makeBooleanProp(false),
  /** loading态 */
  loading: makeBooleanProp(undefined),
  /** H5保存即自动下载（在支持的环境下），默认false为仅弹层提示用户需要长按图片保存，不会自动下载 */
  h5SaveIsDownload: makeBooleanProp(false),
  /** H5下载名称 */
  h5DownloadName: makeStringProp('uQRCode'),
  customClass: makeStringProp(''),
}
