{"version":3,"file":"image.mjs","sources":["../../../../../../packages/components/image/src/image.ts"],"sourcesContent":["import { buildProps, definePropType } from '@sgui-plus/utils'\r\nimport { isNumber } from '@sgui-plus/utils/util'\r\nimport { mutable } from '@sgui-plus/utils/types'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\n\r\nexport const imageProps = buildProps({\r\n  /**\r\n   * @description when enabling preview, use this flag to control whether clicking on backdrop can exit preview mode.\r\n   */\r\n  hideOnClickModal: Boolean,\r\n  /**\r\n   * @description image source, same as native.\r\n   */\r\n  src: {\r\n    type: String,\r\n    default: '',\r\n  },\r\n  /**\r\n   * @description indicate how the image should be resized to fit its container, same as [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit).\r\n   */\r\n  fit: {\r\n    type: String,\r\n    values: ['', 'contain', 'cover', 'fill', 'none', 'scale-down'],\r\n    default: '',\r\n  },\r\n  /**\r\n   * @description Indicates how the browser should load the image, same as [native](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-loading)\r\n   */\r\n  loading: {\r\n    type: String,\r\n    values: ['eager', 'lazy'],\r\n  },\r\n  /**\r\n   * @description whether to use lazy load.\r\n   */\r\n  lazy: Boolean,\r\n  /**\r\n   * @description the container to add scroll listener when using lazy load.\r\n   */\r\n  scrollContainer: {\r\n    type: definePropType<string | HTMLElement | undefined>([String, Object]),\r\n  },\r\n  /**\r\n   * @description allow big image preview.\r\n   */\r\n  srcList: {\r\n    type: definePropType<string[]>(Array),\r\n    default: () => mutable([] as const),\r\n  },\r\n  notOnlyOne: {\r\n    type: Boolean,\r\n    default: true\r\n  },\r\n  preview: Boolean,\r\n  /**\r\n   * @description whether to append image-viewer to body. A nested parent element attribute transform should have this attribute set to `true`.\r\n   */\r\n  previewTransfer: Boolean,\r\n  /**\r\n   * @description set image preview z-index.\r\n   */\r\n  zIndex: {\r\n    type: Number,\r\n  },\r\n  width: {\r\n    type: [String, Number]\r\n  },\r\n  height: {\r\n    type: [String, Number]\r\n  },\r\n  /**\r\n   * @description initial preview image index, less than the length of `url-list`.\r\n   */\r\n  initialIndex: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n  /**\r\n   * @description whether the viewer preview is infinite.\r\n   */\r\n  infinite: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  /**\r\n   * @description whether the image-viewer can be closed by pressing ESC.\r\n   */\r\n  closeOnPressEscape: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n  /**\r\n   * @description the zoom rate of the image viewer zoom event\r\n   */\r\n  zoomRate: {\r\n    type: Number,\r\n    default: 1.2,\r\n  },\r\n  showWatermark: {\r\n    type: Boolean,\r\n    default: false\r\n  },\r\n  watermarkConfigs: {\r\n    type: Object,\r\n    default() {\r\n      return {}\r\n    }\r\n  }\r\n} as const)\r\nexport type ImageProps = ExtractPropTypes<typeof imageProps>\r\n\r\nexport const imageEmits = {\r\n  onLoad: (evt: Event) => evt instanceof Event,\r\n  onError: (evt: Event) => evt instanceof Event,\r\n  onSwitch: (val: number) => isNumber(val),\r\n  onClose: () => true,\r\n  onShow: () => true,\r\n}\r\nexport type ImageEmits = typeof imageEmits\r\n"],"names":[],"mappings":";;;;;AAGY,MAAC,UAAU,GAAG,UAAU,CAAC;AACrC,EAAE,gBAAgB,EAAE,OAAO;AAC3B,EAAE,GAAG,EAAE;AACP,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,GAAG,EAAE;AACP,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC;AAClE,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;AAC7B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,eAAe,EAAE;AACnB,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC;AAC9B,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,eAAe,EAAE,OAAO;AAC1B,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,GAAG;AAChB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,GAAG;AACd,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL,GAAG;AACH,CAAC,EAAE;AACS,MAAC,UAAU,GAAG;AAC1B,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,GAAG,YAAY,KAAK;AACvC,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,GAAG,YAAY,KAAK;AACxC,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC;AAClC,EAAE,OAAO,EAAE,MAAM,IAAI;AACrB,EAAE,MAAM,EAAE,MAAM,IAAI;AACpB;;;;"}