{"version":3,"file":"AvatarImage.cjs","sources":["../../src/Avatar/AvatarImage.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ImageLoadingStatus } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport type AvatarImageEmits = {\n  /**\n   * A callback providing information about the loading status of the image. <br>\n   * This is useful in case you want to control more precisely what to render as the image is loading.\n   */\n  loadingStatusChange: [value: ImageLoadingStatus]\n}\nexport interface AvatarImageProps extends PrimitiveProps {\n  src: string\n  referrerPolicy?: ImgHTMLAttributes['referrerpolicy']\n  crossOrigin?: ImgHTMLAttributes['crossorigin']\n}\n</script>\n\n<script setup lang=\"ts\">\nimport type { ImgHTMLAttributes } from 'vue'\nimport { toRefs, watch } from 'vue'\nimport { Primitive } from '../Primitive'\nimport { injectAvatarRootContext } from './AvatarRoot.vue'\nimport { useImageLoadingStatus } from './utils'\n\nconst props = withDefaults(defineProps<AvatarImageProps>(), { as: 'img' })\nconst emits = defineEmits<AvatarImageEmits>()\n\nconst { src, referrerPolicy, crossOrigin } = toRefs(props)\nuseForwardExpose()\nconst rootContext = injectAvatarRootContext()\n\nconst imageLoadingStatus = useImageLoadingStatus(src, { referrerPolicy, crossOrigin })\n\nwatch(\n  imageLoadingStatus,\n  (newValue) => {\n    emits('loadingStatusChange', newValue)\n    if (newValue !== 'idle')\n      rootContext.imageLoadingStatus.value = newValue\n  },\n  { immediate: true },\n)\n</script>\n\n<template>\n  <Primitive\n    v-show=\"imageLoadingStatus === 'loaded'\"\n    role=\"img\"\n    :as-child=\"asChild\"\n    :as=\"as\"\n    :src=\"src\"\n    :referrer-policy=\"referrerPolicy\"\n  >\n    <slot />\n  </Primitive>\n</template>\n"],"names":["toRefs","useForwardExpose","injectAvatarRootContext","useImageLoadingStatus","watch"],"mappings":";;;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,GAAK,EAAA,cAAA,EAAgB,WAAY,EAAA,GAAIA,WAAO,KAAK,CAAA;AACzD,IAAiBC,wCAAA,EAAA;AACjB,IAAA,MAAM,cAAcC,yCAAwB,EAAA;AAE5C,IAAA,MAAM,qBAAqBC,kCAAsB,CAAA,GAAA,EAAK,EAAE,cAAA,EAAgB,aAAa,CAAA;AAErF,IAAAC,SAAA;AAAA,MACE,kBAAA;AAAA,MACA,CAAC,QAAa,KAAA;AACZ,QAAA,KAAA,CAAM,uBAAuB,QAAQ,CAAA;AACrC,QAAA,IAAI,QAAa,KAAA,MAAA;AACf,UAAA,WAAA,CAAY,mBAAmB,KAAQ,GAAA,QAAA;AAAA,OAC3C;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;;;;;;;;;;;;;;;;;;;;;;"}