{"version":3,"file":"image.mjs","sources":["../../../components/image/image.tsx"],"sourcesContent":["import { defineComponent, ref, onMounted, computed, onUnmounted, watch, toRefs } from 'vue';\nimport { omit, isString, isFunction } from 'lodash-es';\n\nimport { ImageErrorIcon, ImageIcon } from 'tdesign-icons-vue-next';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { useTNodeJSX, useTNodeDefault, useImagePreviewUrl } from '@tdesign/shared-hooks';\nimport props from './props';\nimport Space from '../space';\n\nexport default defineComponent({\n  name: 'TImage',\n  props: {\n    ...props,\n    onClick: Function,\n  },\n  setup(props) {\n    const divRef = ref<HTMLElement>();\n    const imgRef = ref<HTMLImageElement>();\n    let io: IntersectionObserver = null;\n\n    const { src } = toRefs(props);\n\n    const renderTNodeJSX = useTNodeJSX();\n\n    onMounted(() => {\n      //在nuxt3中img的onload事件会失效\n      if (imgRef.value?.complete && !props.lazy) {\n        triggerHandleLoad();\n      }\n\n      if (!props.lazy || !divRef.value) return;\n\n      const ioObserver = observe(divRef.value, null, handleLoadImage, 0);\n      io = ioObserver;\n    });\n    onUnmounted(() => {\n      divRef.value && io && io.unobserve(divRef.value);\n    });\n\n    const { classPrefix, globalConfig } = useConfig('image');\n\n    // replace image url\n    const imageStrSrc = ref(src.value);\n\n    watch(\n      [src, globalConfig],\n      ([src, globalConfig]) => {\n        const { replaceImageSrc } = globalConfig || {};\n        const tmpUrl = isFunction(replaceImageSrc) ? replaceImageSrc(props) : src;\n        if (tmpUrl === imageStrSrc.value && imageStrSrc.value) return;\n        imageStrSrc.value = tmpUrl;\n      },\n      { immediate: true },\n    );\n\n    const { previewUrl } = useImagePreviewUrl(imageStrSrc);\n\n    watch([previewUrl], () => {\n      hasError.value = false;\n      isLoaded.value = false;\n    });\n\n    const shouldLoad = ref(!props.lazy);\n    const handleLoadImage = () => {\n      shouldLoad.value = true;\n    };\n\n    const isLoaded = ref(false);\n    const handleLoad = (e: Event) => {\n      isLoaded.value = true;\n      props.onLoad?.({ e });\n    };\n    const triggerHandleLoad = () => {\n      const loadEvent = new Event('load');\n      Object.defineProperty(loadEvent, 'target', {\n        value: imgRef.value,\n        enumerable: true,\n      });\n      handleLoad(loadEvent);\n    };\n    const hasError = ref(false);\n    const handleError = (e: Event) => {\n      hasError.value = true;\n      props.onError?.({ e });\n      if (props.fallback) {\n        imageStrSrc.value = props.fallback;\n        hasError.value = false;\n      }\n    };\n\n    const hasMouseEvent = computed(() => {\n      return props.overlayTrigger === 'hover';\n    });\n\n    const imageClasses = computed(() => [\n      `${classPrefix.value}-image`,\n      `${classPrefix.value}-image--fit-${props.fit}`,\n      `${classPrefix.value}-image--position-${props.position}`,\n    ]);\n\n    const shouldShowOverlay = ref(!hasMouseEvent.value);\n    const handleToggleOverlay = () => {\n      if (hasMouseEvent.value) {\n        shouldShowOverlay.value = !shouldShowOverlay.value;\n      }\n    };\n\n    const renderPlaceholder = () => {\n      const placeholder = renderTNodeJSX('placeholder');\n      if (!placeholder) return null;\n      return <div class={`${classPrefix.value}-image__placeholder`}>{placeholder}</div>;\n    };\n\n    const renderGalleryShadow = () => {\n      if (!props.gallery) return null;\n      return <div class={`${classPrefix.value}-image__gallery-shadow`} />;\n    };\n\n    const renderOverlay = () => {\n      const overlayContent = renderTNodDefault('overlayContent');\n      if (!overlayContent) return null;\n      return (\n        <div\n          class={[\n            `${classPrefix.value}-image__overlay-content`,\n            !shouldShowOverlay.value && `${classPrefix.value}-image__overlay-content--hidden`,\n          ]}\n        >\n          {overlayContent}\n        </div>\n      );\n    };\n\n    function renderImageSrcset() {\n      return (\n        <picture>\n          {Object.entries(props.srcset).map(([type, url]) => (\n            <source type={type} srcset={url} />\n          ))}\n          {renderImage()}\n        </picture>\n      );\n    }\n\n    function renderImage() {\n      // string | File\n      const url = isString(imageStrSrc.value) ? imageStrSrc.value : previewUrl.value;\n      return (\n        <img\n          ref={imgRef}\n          src={url}\n          onError={handleError}\n          onLoad={handleLoad}\n          class={imageClasses.value}\n          alt={props.alt}\n          referrerpolicy={props.referrerpolicy}\n        />\n      );\n    }\n\n    const renderTNodDefault = useTNodeDefault();\n\n    return () => {\n      return (\n        <div\n          ref={divRef}\n          class={[\n            `${classPrefix.value}-image__wrapper`,\n            `${classPrefix.value}-image__wrapper--shape-${props.shape}`,\n            props.gallery && `${classPrefix.value}-image__wrapper--gallery`,\n            hasMouseEvent.value && `${classPrefix.value}-image__wrapper--need-hover`,\n          ]}\n          onMouseenter={handleToggleOverlay}\n          onMouseleave={handleToggleOverlay}\n          onClick={(e) => props.onClick?.({ e })}\n          {...omit(props, [\n            'src',\n            'alt',\n            'fit',\n            'position',\n            'shape',\n            'placeholder',\n            'loading',\n            'error',\n            'overlayTrigger',\n            'overlayContent',\n            'lazy',\n            'gallery',\n            'onLoad',\n            'onError',\n            'onClick',\n          ])}\n        >\n          {renderPlaceholder()}\n          {renderGalleryShadow()}\n\n          {(hasError.value || !shouldLoad.value) && <div class={`${classPrefix.value}-image`} />}\n          {!(hasError.value || !shouldLoad.value) &&\n            (props.srcset && Object.keys(props.srcset).length ? renderImageSrcset() : renderImage())}\n          {!(hasError.value || !shouldLoad.value) && !isLoaded.value && (\n            <div class={`${classPrefix.value}-image__loading`}>\n              {renderTNodeJSX('loading') || (\n                <Space direction=\"vertical\" size={8} align=\"center\">\n                  <ImageIcon size=\"24px\" />\n                  {isString(props.loading) ? props.loading : globalConfig.value.loadingText}\n                </Space>\n              )}\n            </div>\n          )}\n\n          {hasError.value && (\n            <div class={`${classPrefix.value}-image__error`}>\n              {renderTNodDefault('error', {\n                defaultNode: (\n                  <Space direction=\"vertical\" size={8} align=\"center\">\n                    <ImageErrorIcon size=\"24px\" />\n                    {isString(props.error) ? props.error : globalConfig.value.errorText}\n                  </Space>\n                ),\n              })}\n            </div>\n          )}\n\n          {renderOverlay()}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","name","props","_objectSpread","onClick","Function","setup","divRef","ref","imgRef","io","_toRefs","toRefs","src","renderTNodeJSX","useTNodeJSX","onMounted","_imgRef$value","value","complete","lazy","triggerHandleLoad","ioObserver","observe","handleLoadImage","onUnmounted","unobserve","_useConfig","useConfig","classPrefix","globalConfig","imageStrSrc","watch","_ref","_ref2","_slicedToArray","_ref3","replaceImageSrc","tmpUrl","isFunction","immediate","_useImagePreviewUrl","useImagePreviewUrl","previewUrl","hasError","isLoaded","shouldLoad","handleLoad","e","_props2$onLoad","onLoad","loadEvent","Event","Object","defineProperty","enumerable","handleError","_props2$onError","onError","fallback","hasMouseEvent","computed","overlayTrigger","imageClasses","concat","fit","position","shouldShowOverlay","handleToggleOverlay","renderPlaceholder","placeholder","_createVNode","renderGalleryShadow","gallery","renderOverlay","overlayContent","renderTNodDefault","renderImageSrcset","entries","srcset","map","_ref4","_ref5","type","url","renderImage","isString","alt","referrerpolicy","useTNodeDefault","_mergeProps","shape","omit","keys","length","Space","_default","ImageIcon","loading","loadingText","defaultNode","error","errorText"],"mappings":"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"}