{"version":3,"file":"image.mjs","sources":["../../../../../../packages/components/image/src/image.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type ImagePreviewGroup from './image-preview-group.vue'\r\nimport type Image from './image.vue'\r\n\r\nexport interface ImagePreviewType {\r\n  visible?: boolean\r\n  onVisibleChange?: (visible, prevVisible) => void\r\n  getContainer?: string | HTMLElement | (() => HTMLElement)\r\n  src?: string\r\n  maskClassName?: string\r\n  current?: number\r\n}\r\n\r\nexport const imageProps = buildProps({\r\n  // buildProps和defineprops一样\r\n  /**\r\n   * @description 图像描述\r\n   */\r\n  alt: {\r\n    type: String,\r\n  },\r\n  /**\r\n   * @description 加载失败容错地址\r\n   */\r\n  fallback: {\r\n    type: String,\r\n  },\r\n  /**\r\n   * @description 图像宽度\r\n   */\r\n  width: {\r\n    type: definePropType<number | string>([Number, String]),\r\n  },\r\n  /**\r\n   * @description 图像高度\r\n   */\r\n  height: {\r\n    type: definePropType<number | string>([Number, String]),\r\n  },\r\n  /**\r\n   * @description 加载占位, 为 true 时使用默认占位，有插槽\r\n   */\r\n  placeholder: {\r\n    type: Boolean,\r\n  },\r\n  /**\r\n   * @description 预览参数，为 false 时禁用\r\n   */\r\n  preview: {\r\n    type: definePropType<boolean | ImagePreviewType>([Boolean, Object]),\r\n    default: true,\r\n  },\r\n  /**\r\n   * @description 图片地址\r\n   */\r\n  src: {\r\n    type: String,\r\n  },\r\n  /**\r\n   * @description 自定义 mask 有插槽\r\n   */\r\n  previewMask: {\r\n    type: definePropType<false | (() => any)>([false, Function]),\r\n  },\r\n  /**\r\n   * @description 是否展示border\r\n   */\r\n  isShowBorder: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  /**\r\n   * @description border圆角\r\n   */\r\n  borderRadius: {\r\n    type: String,\r\n    default: '6px',\r\n  },\r\n  /**\r\n   * @description 元素图片缩放\r\n   */\r\n  objectFit: {\r\n    type: String,\r\n    default: 'contain',\r\n  },\r\n  /**\r\n   * @description 蒙层颜色\r\n   */\r\n  maskColor: {\r\n    type: String,\r\n    default: 'rgba(0, 0, 0, 0.5)',\r\n  },\r\n  /**\r\n   * @description 蒙层预览图标\r\n   */\r\n  previewIcon: {\r\n    type: String,\r\n    default: 'icon-pwd-look',\r\n  },\r\n  /**\r\n   * @description 预览图标大小\r\n   */\r\n  iconSize: {\r\n    type: Number,\r\n    default: 16,\r\n  },\r\n  /** 水印文字内容 */\r\n  content: {\r\n    type: definePropType<string | string[]>([Array, String]),\r\n    default: '',\r\n  },\r\n  /**\r\n   * @description 水印宽度\r\n   */\r\n  watermarkWidth: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n  /**\r\n   * @description 水印高度\r\n   */\r\n  watermarkHeight: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n} as const)\r\n\r\n// props\r\nexport type ImageProps = ExtractPropTypes<typeof imageProps> // ExtractPropTypes和defineCpmponent类似\r\nexport type ImagePreviewGroupProps = ExtractPropTypes<typeof imageProps> // ExtractPropTypes和defineCpmponent类似\r\n\r\n// instance\r\nexport type ImageInstance = InstanceType<typeof Image>\r\nexport type ImagePreviewGroupInstance = InstanceType<typeof ImagePreviewGroup>\r\n\r\nexport const FALL_BACK_IMG =\r\n  'data:image/jpeg;base64,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'\r\n"],"names":[],"mappings":";;;;AAeO,MAAM,aAAa,UAAA,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnC,GAAA,EAAK;AAAA,IACH,IAAA,EAAM;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,cAAA,CAAgC,CAAC,MAAA,EAAQ,MAAM,CAAC;AAAA,GACxD;AAAA;AAAA;AAAA;AAAA,EAIA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,cAAA,CAAgC,CAAC,MAAA,EAAQ,MAAM,CAAC;AAAA,GACxD;AAAA;AAAA;AAAA;AAAA,EAIA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,cAAA,CAA2C,CAAC,OAAA,EAAS,MAAM,CAAC,CAAA;AAAA,IAClE,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,GAAA,EAAK;AAAA,IACH,IAAA,EAAM;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,cAAA,CAAoC,CAAC,KAAA,EAAO,QAAQ,CAAC;AAAA,GAC7D;AAAA;AAAA;AAAA;AAAA,EAIA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,cAAA,CAAkC,CAAC,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,IACvD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,cAAA,EAAgB;AAAA,IACd,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb,CAAU;AAUH,MAAM,aAAA,GACX;;;;"}