{"version":3,"file":"Image.cjs","sources":["../../../../../../packages/vue-components/vc-image/src/Image.tsx"],"sourcesContent":["import type { MouseEventHandler } from '@antdv/types';\nimport type { CSSProperties, ExtractPropTypes, ImgHTMLAttributes, PropType } from 'vue';\nimport type { ImagePreviewType, ImageStatus } from './interface';\nimport { useMergedState } from '@antdv/hooks';\nimport { classNames, getOffset, PropTypes } from '@antdv/utils';\nimport { isNumber } from 'lodash-es';\nimport {\n  computed,\n  defineComponent,\n  onMounted,\n  onUnmounted,\n  ref,\n  watch,\n} from 'vue';\n\nimport { COMMON_PROPS } from './common';\nimport { imageContext } from './context';\nimport Preview from './Preview';\nimport PreviewGroup from './PreviewGroup';\nimport { mergeDefaultValue } from './utils';\n\nexport function imageProps() {\n  return {\n    src: String,\n    wrapperClassName: String,\n    wrapperStyle: { type: Object as PropType<CSSProperties>, default: undefined as CSSProperties },\n    rootClassName: String,\n    prefixCls: String,\n    previewPrefixCls: String,\n    width: [Number, String],\n    height: [Number, String],\n    previewMask: {\n      type: [Boolean, Function] as PropType<false | (() => any)>,\n      default: undefined,\n    },\n    placeholder: PropTypes.any,\n    fallback: String,\n    preview: {\n      type: [Boolean, Object] as PropType<boolean | ImagePreviewType>,\n      default: true as boolean | ImagePreviewType,\n    },\n    onClick: {\n      type: Function as PropType<MouseEventHandler>,\n    },\n    onError: {\n      type: Function as PropType<HTMLImageElement['onerror']>,\n    },\n  };\n}\n\nexport type ImageProps = Partial<\n  ExtractPropTypes<ReturnType<typeof imageProps>> &\n  Omit<ImgHTMLAttributes, 'placeholder' | 'onClick'>\n>;\n\nlet uuid = 0;\nconst ImageInternal = defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'VcImage',\n  inheritAttrs: false,\n  props: imageProps(),\n  emits: ['click', 'error'],\n  setup(props, { attrs, slots, emit }) {\n    const prefixCls = computed(() => props.prefixCls);\n    const previewPrefixCls = computed(() => `${prefixCls.value}-preview`);\n    const preview = computed<ImagePreviewType>(() => {\n      const defaultValues = {\n        visible: undefined,\n        onVisibleChange: () => {},\n        getContainer: undefined,\n      };\n      return typeof props.preview === 'object'\n        ? mergeDefaultValue(props.preview, defaultValues)\n        : defaultValues;\n    });\n    const src = computed(() => preview.value.src ?? props.src);\n    const isCustomPlaceholder = computed(\n      () => (props.placeholder && props.placeholder !== true) || slots.placeholder,\n    );\n    const previewVisible = computed(() => preview.value.visible);\n    const getPreviewContainer = computed(() => preview.value.getContainer);\n    const isControlled = computed(() => previewVisible.value !== undefined);\n    const imgCommonProps = computed<ImgHTMLAttributes>(() => {\n      const commonProps = {};\n      COMMON_PROPS.forEach((key) => {\n        if (attrs[key])\n          commonProps[key] = attrs[key];\n      });\n      return commonProps;\n    });\n\n    const onPreviewVisibleChange = (val, preval) => {\n      preview.value.onVisibleChange?.(val, preval);\n    };\n    const [isShowPreview, setShowPreview] = useMergedState(!!previewVisible.value, {\n      value: previewVisible,\n      onChange: onPreviewVisibleChange,\n    });\n\n    const status = ref<ImageStatus>(isCustomPlaceholder.value ? 'loading' : 'normal');\n    watch(\n      () => props.src,\n      () => {\n        status.value = isCustomPlaceholder.value ? 'loading' : 'normal';\n      },\n    );\n    const mousePosition = ref<null | { x: number; y: number }>(null);\n    const isError = computed(() => status.value === 'error');\n    const groupContext = imageContext.inject();\n    const {\n      isPreviewGroup,\n      setCurrent,\n      setShowPreview: setGroupShowPreview,\n      setMousePosition: setGroupMousePosition,\n      registerImage,\n    } = groupContext;\n    const currentId = ref(uuid++);\n    const canPreview = computed(() => props.preview && !isError.value);\n    const onLoad = () => {\n      status.value = 'normal';\n    };\n    const onError = (e: Event) => {\n      status.value = 'error';\n      emit('error', e);\n    };\n\n    const onPreview: MouseEventHandler = (e) => {\n      if (!isControlled.value) {\n        const { left, top } = getOffset(e.target);\n\n        if (isPreviewGroup.value) {\n          setCurrent(currentId.value);\n          setGroupMousePosition({\n            x: left,\n            y: top,\n          });\n        } else {\n          mousePosition.value = {\n            x: left,\n            y: top,\n          };\n        }\n      }\n      if (isPreviewGroup.value)\n        setGroupShowPreview(true);\n      else\n        setShowPreview(true);\n\n      emit('click', e);\n    };\n\n    const onPreviewClose = () => {\n      setShowPreview(false);\n      if (!isControlled.value)\n        mousePosition.value = null;\n    };\n\n    const img = ref<HTMLImageElement>(null);\n    watch(\n      () => img,\n      () => {\n        if (status.value !== 'loading') return;\n        if (img.value.complete && (img.value.naturalWidth || img.value.naturalHeight))\n          onLoad();\n      },\n    );\n    let unRegister = () => {};\n    onMounted(() => {\n      watch(\n        [src, canPreview],\n        () => {\n          unRegister();\n          if (!isPreviewGroup.value)\n            return () => {};\n\n          unRegister = registerImage(\n            currentId.value,\n            src.value,\n            canPreview.value,\n            imgCommonProps.value,\n          );\n\n          if (!canPreview.value)\n            unRegister();\n        },\n        { flush: 'post', immediate: true },\n      );\n    });\n    onUnmounted(() => {\n      unRegister();\n    });\n    const toSizePx = (l: number | string) => {\n      if (isNumber(l)) return `${l}px`;\n      return l;\n    };\n    return () => {\n      const {\n        prefixCls,\n        wrapperClassName,\n        fallback,\n        src: imgSrc,\n        placeholder,\n        wrapperStyle,\n        rootClassName,\n        width,\n        height,\n        class: cls,\n        style,\n        alt,\n      } = { ...props, ...attrs } as any;\n      const { icons, maskClassName, ...dialogProps } = preview.value;\n\n      const wrappperClass = classNames(prefixCls, wrapperClassName, rootClassName, {\n        [`${prefixCls}-error`]: isError.value,\n      });\n      const mergedSrc = isError.value && fallback ? fallback : src.value;\n      const commonProps = {\n        ...imgCommonProps.value,\n        width,\n        height,\n        class: classNames(\n          `${prefixCls}-img`,\n          {\n            [`${prefixCls}-img-placeholder`]: placeholder === true,\n          },\n          cls,\n        ),\n        style: {\n          height: toSizePx(height),\n          ...(style as CSSProperties),\n        },\n      };\n\n      return (\n        <>\n          <div\n            class={wrappperClass}\n            onClick={\n              canPreview.value\n                ? onPreview\n                : e => emit('click', e)\n            }\n            style={{\n              width: toSizePx(width),\n              height: toSizePx(height),\n              ...wrapperStyle,\n            }}\n          >\n            <img\n              {...commonProps}\n              {...(isError.value && fallback\n                ? {\n                    src: fallback,\n                  }\n                : { onLoad, onError, src: imgSrc })}\n              ref={img}\n            />\n\n            {status.value === 'loading' && (\n              <div aria-hidden=\"true\" class={`${prefixCls}-placeholder`}>\n                {placeholder || (slots.placeholder && slots.placeholder())}\n              </div>\n            )}\n            {/* Preview Click Mask */}\n            {slots.previewMask && canPreview.value && (\n              <div class={[`${prefixCls}-mask`, maskClassName]}>{slots.previewMask()}</div>\n            )}\n          </div>\n          {!isPreviewGroup.value && canPreview.value && (\n            <Preview\n              {...dialogProps}\n              aria-hidden={!isShowPreview.value}\n              visible={isShowPreview.value}\n              prefixCls={previewPrefixCls.value}\n              onClose={onPreviewClose}\n              mousePosition={mousePosition.value}\n              src={mergedSrc}\n              alt={alt}\n              getContainer={getPreviewContainer.value}\n              icons={icons}\n              rootClassName={rootClassName}\n              imgCommonProps={imgCommonProps.value}\n            />\n          )}\n        </>\n      );\n    };\n  },\n});\nImageInternal.PreviewGroup = PreviewGroup;\n\nexport default ImageInternal as typeof ImageInternal & {\n  readonly PreviewGroup: typeof PreviewGroup;\n};\n"],"names":["imageProps","src","String","wrapperClassName","wrapperStyle","type","Object","default","undefined","rootClassName","prefixCls","previewPrefixCls","width","Number","height","previewMask","Boolean","Function","placeholder","PropTypes","any","fallback","preview","onClick","onError","uuid","ImageInternal","defineComponent","compatConfig","MODE","name","inheritAttrs","props","emits","setup","attrs","slots","emit","computed","value","defaultValues","visible","onVisibleChange","getContainer","mergeDefaultValue","isCustomPlaceholder","previewVisible","getPreviewContainer","isControlled","imgCommonProps","commonProps","COMMON_PROPS","forEach","key","onPreviewVisibleChange","val","preval","isShowPreview","setShowPreview","useMergedState","onChange","status","ref","watch","mousePosition","isError","groupContext","imageContext","inject","isPreviewGroup","setCurrent","setGroupShowPreview","setMousePosition","setGroupMousePosition","registerImage","currentId","canPreview","onLoad","e","onPreview","left","top","getOffset","target","x","y","onPreviewClose","img","complete","naturalWidth","naturalHeight","unRegister","onMounted","flush","immediate","onUnmounted","toSizePx","l","isNumber","imgSrc","class","cls","style","alt","icons","maskClassName","dialogProps","wrappperClass","classNames","mergedSrc","_createVNode","_Fragment","Preview","PreviewGroup"],"mappings":"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"}