reka-ui
Version:
Vue port for Radix UI Primitives.
1 lines • 2.34 kB
Source Map (JSON)
{"version":3,"file":"AvatarImage.cjs","sources":["../../src/Avatar/AvatarImage.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { ImageLoadingStatus } from './utils'\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}\n</script>\n\n<script setup lang=\"ts\">\nimport { type ImgHTMLAttributes, 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 } = toRefs(props)\nuseForwardExpose()\nconst rootContext = injectAvatarRootContext()\n\nconst imageLoadingStatus = useImageLoadingStatus(src, referrerPolicy)\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":";;;;;;;;;;;;;;;;;;AAwBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,GAAA,EAAK,cAAe,EAAA,GAAIA,WAAO,KAAK,CAAA;AAC5C,IAAiBC,wCAAA,EAAA;AACjB,IAAA,MAAM,cAAcC,yCAAwB,EAAA;AAE5C,IAAM,MAAA,kBAAA,GAAqBC,kCAAsB,CAAA,GAAA,EAAK,cAAc,CAAA;AAEpE,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;;;;;;;;;;;;;;;;;;;;;;"}