UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 6.44 kB
{"version":3,"file":"ImageViewerUtils.mjs","sources":["../../../src/image-viewer/base/ImageViewerUtils.tsx"],"sourcesContent":["import { computed, defineComponent, PropType } from 'vue';\nimport TImageViewerIcon from './ImageModalIcon';\nimport TToolTip from '../../tooltip';\nimport { usePrefixClass, useConfig } from '../../hooks/useConfig';\nimport { downloadFile } from '../utils';\nimport { useImagePreviewUrl } from '../../hooks';\nimport { ImageInfo } from '../type';\n\nexport default defineComponent({\n name: 'XImageViewerUtils',\n props: {\n scale: Number,\n onRotate: Function as PropType<() => void>,\n onZoomIn: Function as PropType<() => void>,\n onZoomOut: Function as PropType<() => void>,\n onMirror: Function as PropType<() => void>,\n onReset: Function as PropType<() => void>,\n currentImage: {\n type: Object as PropType<ImageInfo>,\n default() {\n return {};\n },\n },\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const imageUrl = computed(() => props.currentImage.mainImage);\n\n const { previewUrl } = useImagePreviewUrl(imageUrl);\n const { globalConfig } = useConfig('imageViewer');\n\n return () => (\n <div class={`${classPrefix.value}-image-viewer__utils`}>\n <div class={`${classPrefix.value}-image-viewer__utils-content`}>\n <TToolTip\n overlayClassName={`${classPrefix.value}-image-viewer__utils--tip`}\n content={globalConfig.value.mirrorTipText ?? '镜像'}\n destroyOnClose\n placement=\"top\"\n showArrow\n theme=\"default\"\n >\n <TImageViewerIcon onClick={props.onMirror} icon={() => <icon-ri-arrow-left-right-line size=\"medium\" />} />\n </TToolTip>\n <TToolTip\n overlayClassName={`${classPrefix.value}-image-viewer__utils--tip`}\n content={globalConfig.value.rotateTipText ?? '旋转'}\n destroyOnClose\n placement=\"top\"\n showArrow\n theme=\"default\"\n >\n <TImageViewerIcon onClick={props.onRotate} icon={() => <icon-ri-clockwise-line size=\"medium\" />} />\n </TToolTip>\n <TImageViewerIcon icon={() => <icon-ri-zoom-out-line size=\"medium\" />} onClick={props.onZoomOut} />\n <TImageViewerIcon\n class={`${classPrefix.value}-image-viewer__utils-scale`}\n size=\"medium\"\n label={`${props.scale * 100}%`}\n />\n <TImageViewerIcon icon={() => <icon-ri-zoom-in-line size=\"medium\" />} onClick={props.onZoomIn} />\n <TToolTip\n overlayClassName={`${classPrefix.value}-image-viewer__utils--tip`}\n content={globalConfig.value.originalSizeTipText ?? '原始大小'}\n destroyOnClose\n placement=\"top\"\n showArrow\n theme=\"default\"\n >\n <div class={`${classPrefix.value}-image-viewer__modal-icon`}>\n <TImageViewerIcon icon={() => <icon-ri-image-line size=\"medium\" />} onClick={props.onReset} />\n </div>\n </TToolTip>\n {props.currentImage.download && (\n <TImageViewerIcon\n icon={() => <icon-ri-download-2-line size=\"medium\" />}\n onClick={() => {\n downloadFile(previewUrl.value);\n }}\n />\n )}\n </div>\n </div>\n );\n },\n});\n"],"names":["name","props","scale","onRotate","onZoomIn","onZoomOut","onMirror","onReset","currentImage","type","_createVNode","_resolveComponent","downloadFile"],"mappings":"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"}