{"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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"}