tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 17.2 kB
Source Map (JSON)
{"version":3,"file":"ImageItem.mjs","sources":["../../../../components/image-viewer/base/ImageItem.tsx"],"sourcesContent":["import { ImageErrorIcon } from 'tdesign-icons-vue-next';\nimport { PropType, computed, defineComponent, onMounted, ref, toRefs, watch } from 'vue';\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport { useImagePreviewUrl } from '../../hooks/useImagePreviewUrl';\nimport { useDrag } from '../hooks';\nimport { TdImageViewerProps } from '../type';\n\nexport default defineComponent({\n name: 'TImageItem',\n props: {\n rotate: Number,\n scale: Number,\n mirror: Number,\n src: [String, Object] as PropType<string | File>,\n placementSrc: [String, Object] as PropType<string | File>,\n isSvg: Boolean,\n imageReferrerpolicy: String as PropType<TdImageViewerProps['imageReferrerpolicy']>,\n },\n\n setup(props) {\n const { src, placementSrc, isSvg } = toRefs(props);\n const classPrefix = usePrefixClass();\n const error = ref(false);\n const loaded = ref(false);\n const { transform, mouseDownHandler } = useDrag({ translateX: 0, translateY: 0 });\n const { globalConfig } = useConfig('imageViewer');\n const errorText = globalConfig.value.errorText;\n const svgElRef = ref<HTMLDivElement>();\n\n const imgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !props.placementSrc || loaded.value ? 'block' : 'none',\n }));\n const placementImgStyle = computed(() => ({\n transform: `rotate(${props.rotate}deg) scale(${props.scale})`,\n display: !loaded.value ? 'block' : 'none',\n }));\n const boxStyle = computed(() => {\n const { translateX, translateY } = transform.value;\n return {\n transform: `translate(${translateX}px, ${translateY}px) scale(${props.mirror}, 1)`,\n };\n });\n\n const resetStatus = () => {\n error.value = false;\n loaded.value = false;\n if (isSvg.value) {\n createSvgShadow(mainImagePreviewUrl.value);\n }\n };\n\n const createSvgShadow = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n error.value = true;\n throw new Error(`Failed to fetch SVG: ${response.statusText}`);\n }\n const svgText = await response.text();\n\n const element = svgElRef.value;\n element.innerHTML = '';\n element.classList?.add(`${classPrefix.value}-image-viewer__modal-image-svg`);\n const shadowRoot = element.attachShadow({ mode: 'closed' });\n\n const container = document.createElement('div');\n\n container.style.background = 'var(--td-bg-color-container)';\n container.style.padding = '4px';\n container.style.borderRadius = '4px';\n container.style.maxHeight = '100%';\n container.style.maxWidth = '100%';\n container.style.boxSizing = 'border-box';\n container.style.height = 'auto';\n container.innerHTML = svgText;\n shadowRoot.appendChild(container);\n\n const svgElement = container.querySelector('svg');\n if (svgElement) {\n const svgViewBox = svgElement.getAttribute('viewBox');\n if (svgViewBox) {\n const viewBoxValues = svgViewBox\n .split(/[\\s\\,]/)\n .filter(function (v) {\n return v;\n })\n .map(parseFloat);\n\n // svg viewbox x(0) and y(1) offset, width(2) and height(3),eg\n const svgViewBoxWidth = viewBoxValues[2];\n // const svgViewBoxHeight = viewBoxValues[3];\n container.style.width = `${svgViewBoxWidth}px`;\n } else {\n const bbox = svgElement.getBBox();\n const calculatedViewBox = `${bbox.x} ${bbox.y} ${bbox.width} ${bbox.height}`;\n svgElement.setAttribute('viewBox', calculatedViewBox);\n\n container.style.width = `${bbox.width}px`;\n }\n svgElement.style.maxHeight = '100%';\n svgElement.style.maxWidth = '100%';\n svgElement.style.height = 'auto';\n svgElement.style.display = 'block';\n svgElement.style.lineHeight = 'normal';\n }\n loaded.value = true;\n };\n\n const { previewUrl: mainImagePreviewUrl } = useImagePreviewUrl(src);\n const { previewUrl: placementImagePreviewUrl } = useImagePreviewUrl(placementSrc);\n\n watch([mainImagePreviewUrl, placementImagePreviewUrl], () => {\n resetStatus();\n });\n\n onMounted(async () => {\n if (isSvg.value) {\n await createSvgShadow(mainImagePreviewUrl.value);\n }\n });\n\n return () => (\n <div class={`${classPrefix.value}-image-viewer__modal-pic`}>\n <div class={`${classPrefix.value}-image-viewer__modal-box`} style={boxStyle.value}>\n {error.value && (\n <div class={`${classPrefix.value}-image-viewer__img-error`}>\n {/* 脱离文档流 */}\n <div class={`${classPrefix.value}-image-viewer__img-error-content`}>\n <ImageErrorIcon size=\"4em\" />\n <div class={`${classPrefix.value}-image-viewer__img-error-text`}>{errorText}</div>\n </div>\n </div>\n )}\n\n {!error.value && !!props.placementSrc && placementImagePreviewUrl.value && (\n <img\n class={`${classPrefix.value}-image-viewer__modal-image`}\n onMousedown={(event: MouseEvent) => {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={placementImagePreviewUrl.value}\n style={placementImgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && !isSvg.value && (\n <img\n class={`${classPrefix.value}-image-viewer__modal-image`}\n onMousedown={(event: MouseEvent) => {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n src={mainImagePreviewUrl.value}\n onLoad={() => (loaded.value = true)}\n onError={() => (error.value = true)}\n style={imgStyle.value}\n referrerpolicy={props.imageReferrerpolicy}\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n\n {!error.value && mainImagePreviewUrl.value && isSvg.value && (\n <div\n ref={svgElRef}\n class={`${classPrefix.value}-image-viewer__modal-image`}\n onMousedown={(event: MouseEvent) => {\n event.stopPropagation();\n mouseDownHandler(event);\n }}\n data-alt=\"svg\"\n style={imgStyle.value}\n draggable=\"false\"\n ></div>\n )}\n </div>\n </div>\n );\n },\n});\n"],"names":["defineComponent","name","props","rotate","Number","scale","mirror","src","String","Object","placementSrc","isSvg","Boolean","imageReferrerpolicy","setup","_toRefs","toRefs","classPrefix","usePrefixClass","error","ref","loaded","_useDrag","useDrag","translateX","translateY","transform","mouseDownHandler","_useConfig","useConfig","globalConfig","errorText","value","svgElRef","imgStyle","computed","concat","display","placementImgStyle","boxStyle","_transform$value","resetStatus","createSvgShadow","mainImagePreviewUrl","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","url","_element$classList","response","svgText","element","shadowRoot","container","svgElement","svgViewBox","viewBoxValues","svgViewBoxWidth","bbox","calculatedViewBox","wrap","_callee$","_context","prev","next","fetch","sent","ok","Error","statusText","text","innerHTML","classList","add","attachShadow","mode","document","createElement","style","background","padding","borderRadius","maxHeight","maxWidth","boxSizing","height","appendChild","querySelector","getAttribute","split","filter","v","map","parseFloat","width","getBBox","x","y","setAttribute","lineHeight","stop","_x","apply","arguments","_useImagePreviewUrl","useImagePreviewUrl","previewUrl","_useImagePreviewUrl2","placementImagePreviewUrl","watch","onMounted","_callee2","_callee2$","_context2","_createVNode","ImageErrorIcon","onMousedown","event","stopPropagation","onLoad","onError"],"mappings":"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"}